Возможно ли расположить input'ы в форме в рандомной последовательности?

Ссылка скопирована
1 ответ

Input(радио кнопки) на странице после каждой загрузки должны располагаться в рандомный последовательности.

Дополнительно:

Math.random()

  • WbICHA, но как это поможет рандомному расположению кнопок на странице
  • Valenco, только на HTML - нет.
    Это должен делать либо сервер, отдавая разную разметку, либо JS переставлять местами после загрузки страницы /этого блока с радиокнопками. В случае с js - для поискового робота который не будет исполнять js - разметка всегда будет одинаковая. Для пользователя - разная. Но получается у пользователя будет возможность отключить js и получить одинаковый порядок каждый раз.
    А Math.random как раз и поможет случайным образом определить порядковый индекс расположения элемента.
  • Вадим,

    Но получается у пользователя будет возможность отключить js и получить одинаковый порядок каждый раз.

    Только если идёт пререндер вариантов ответа, но тут возникает вопрос: а зачем нам рендерить ответы до рандомизации? Поисковый робот? А что ему делать на странице тестов?

  • WbICHA, просто подсветил автору эти нюансы. Так как контекста ноль.
  • Да, возможно.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Игорь Волков Ответ

    Да, возможно расположить input'ы в форме в рандомной последовательности с помощью JavaScript. Для этого вы можете использовать следующий код:

    // Получаем все input'ы в форме
    var form = document.getElementById('myForm');
    var inputs = form.getElementsByTagName('input');
     
    // Создаем массив для хранения их порядкового номера
    var indexes = [];
     
    // Заполняем массив порядковыми номерами
    for (var i = 0; i < inputs.length; i++) {
        indexes.push(i);
    }
     
    // Перемешиваем массив
    indexes.sort(function(a, b) {
        return 0.5 - Math.random();
    });
     
    // Перемещаем input'ы в форме в соответствии с новым порядком
    for (var j = 0; j < indexes.length; j++) {
        form.appendChild(inputs[indexes[j]]);
    }

    // Получаем все input'ы в форме var form = document.getElementById('myForm'); var inputs = form.getElementsByTagName('input'); // Создаем массив для хранения их порядкового номера var indexes = []; // Заполняем массив порядковыми номерами for (var i = 0; i < inputs.length; i++) { indexes.push(i); } // Перемешиваем массив indexes.sort(function(a, b) { return 0.5 - Math.random(); }); // Перемещаем input'ы в форме в соответствии с новым порядком for (var j = 0; j < indexes.length; j++) { form.appendChild(inputs[indexes[j]]); }

    Прежде всего, мы получаем все input'ы в форме и создаем массив indexes, в котором хранятся порядковые номера input'ов. Затем мы перемешиваем этот массив, используя метод sort с функцией, которая генерирует случайное число от -0.5 до 0.5. После этого мы перемещаем input'ы в соответствии с новым порядком.

    Таким образом, при загрузке страницы input'ы в форме будут располагаться в рандомной последовательности. Не забудьте добавить id="myForm" к вашей форме, чтобы скрипт мог получить доступ к ней.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно