Возможно ли расположить input'ы в форме в рандомной последовательности?
Input(радио кнопки) на странице после каждой загрузки должны располагаться в рандомный последовательности.
Дополнительно:
Math.random()
Это должен делать либо сервер, отдавая разную разметку, либо JS переставлять местами после загрузки страницы /этого блока с радиокнопками. В случае с js - для поискового робота который не будет исполнять js - разметка всегда будет одинаковая. Для пользователя - разная. Но получается у пользователя будет возможность отключить js и получить одинаковый порядок каждый раз.
А Math.random как раз и поможет случайным образом определить порядковый индекс расположения элемента.
Но получается у пользователя будет возможность отключить js и получить одинаковый порядок каждый раз.
Только если идёт пререндер вариантов ответа, но тут возникает вопрос: а зачем нам рендерить ответы до рандомизации? Поисковый робот? А что ему делать на странице тестов?
Да, возможно.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Да, возможно расположить 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'ы в форме и создаем массив indexes, в котором хранятся порядковые номера input'ов. Затем мы перемешиваем этот массив, используя метод sort с функцией, которая генерирует случайное число от -0.5 до 0.5. После этого мы перемещаем input'ы в соответствии с новым порядком.
Таким образом, при загрузке страницы input'ы в форме будут располагаться в рандомной последовательности. Не забудьте добавить id="myForm" к вашей форме, чтобы скрипт мог получить доступ к ней.