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

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

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

Math.random()

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

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

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

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

     

    Для решения данной проблемы вы можете воспользоваться услугами фрилансеров. Мы выполним необходимую работу быстро и качественно.

     

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

      Да, возможно расположить 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" к вашей форме, чтобы скрипт мог получить доступ к ней.

    Оставить комментарий