Как я могу заставить свой Javascript распознавать, какой параметр переключателя выбран в моем HTML?

#javascript #html

#javascript #HTML

Вопрос:

Я работаю над созданием небольшой текстовой приключенческой игры в течение следующей недели, используя только HTML, CSS и JavaScript, однако я столкнулся с проблемами с самого начала, поскольку я пытаюсь предоставить игроку выбор с помощью переключателей, поэтому они выбирают выбор, затем нажимают отправить, и на основе выбора может произойти несколько вещей. Однако я понятия не имею, как на самом деле достичь этой функции…

Я искал учебные пособия или примеры, содержащие похожие вопросы, как у меня, однако ни один из них не помог слишком сильно.

   <form>
    <input type="radio" name="choice" value="A1" checked> Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br>
    <input type="radio" name="choice" value="A2"> Proin volutpat eros fringilla felis euismod laoreet a eu velit. <br>
    <input type="radio" name="choice" value="A3"> Mauris orci mi, luctus in leo eget, facilisis imperdiet lacus. <br><br>
    <button type="button" onclick=choiceA()> Choose </button>
  </form>
  

Я бы хотел, чтобы использованные пользователи могли проверить один из этих параметров, затем нажать кнопку «Выбрать» и продолжить свой путь, зарегистрировав свой выбор в JavaScript для справки позже.

Как я могу заставить свой Javascript распознавать, какой параметр переключателя выбран в моем HTML?

Комментарии:

1. document.forms[0].elements.choice.value является ли значение выбранного choice ?

Ответ №1:

Вы можете использовать FormData . Для этого сначала введите идентификатор в форму.В этом примере это делается с name атрибутом. Вы также можете использовать id

Во-вторых, используйте get метод для получения значения выбранной формы

 function choiceA(e) {
  e.preventDefault();
  var form = document.forms.namedItem("fileinfo");
  var formData = new FormData(form);
  console.log(formData.get('choice'))
  }  
 <form name='fileinfo'>
  <input type="radio" name="choice" value="A1" checked> Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br>
  <input type="radio" name="choice" value="A2"> Proin volutpat eros fringilla felis euismod laoreet a eu velit. <br>
  <input type="radio" name="choice" value="A3"> Mauris orci mi, luctus in leo eget, facilisis imperdiet lacus. <br><br>
  <button type="submit" onclick=choiceA(event)> Choose </button>
</form>  

Ответ №2:

вы можете добавить их внутри div

 <div id="collection">
<label>Value1
    <input name="myradio" type="radio" value="value1" />
</label>
<label>Value2
    <input name="myradio" type="radio" value="value2" />
</label>
  

и jquery

     $(function () {
    $('#collection input[type=radio]').change(function(){
      alert ( $(this).val() ) 
      //do your activity
      })
})
  

Комментарии:

1. простой javascript может это сделать @Khagesh

Ответ №3:

Вы можете использовать эту простую функцию и полностью выполнить свою задачу. Я беру значение из переключателя всякий раз, когда пользователь нажимает на любой btn, затем это значение используется для выполнения операции в соответствии с выбором в choiceA();

 <form>
    <input type="radio" name="choice" onclick="getRadioValue('A1')" value="A1" checked> Lorem ipsum dolor sit amet, consectetur adipiscing elit. <br>
    <input type="radio" name="choice" onclick="getRadioValue('A2')" value="A2"> Proin volutpat eros fringilla felis euismod laoreet a eu velit. <br>
    <input type="radio" name="choice" onclick="getRadioValue('A3')" value="A3"> Mauris orci mi, luctus in leo eget, facilisis imperdiet lacus. <br><br>
<button type="button" onclick=choiceA()> Choose </button>
  

В js. создайте функцию с тем же именем, ie. getRadioValue(параметр)

 var globalSelectedValue = 'A1';
function getRadioValue(param){
    globalSelectedValue = param;
    console.log(globalSelectedValue);
}

function choiceA(e){
    doSomething(globalSelectedValue);
 }
  

Комментарии:

1. Он инициализирует A1 как переключатель, выбранный по умолчанию. Как только пользователь нажимает другой переключатель, вызывается getRadioValue и значение передается через параметр, тогда значение globalSelectedValue будет изменено.