JavaScript для проверки, выбран ли какой-либо из нескольких радиовходов в форме HTML - PullRequest
0 голосов
/ 03 февраля 2019

Я создаю HTML-форму с параметрами подписки / отмены подписки для нескольких публикаций (электронная почта).И требует сценарий, который будет проверять, выбрано ли радио или нет.Я не смог создать необходимую логику.Спасибо за ваш вклад.

Идея состоит в том, что а) если кто-то выберет «отписаться», то для этого будут отображены имя, поля электронной почты, б) если выбрано «подписка», то фамилия, страна будуттакже будет показано для этой цели.И если выбраны как отписаться, так и подписаться, то применяется б).Таким образом, можно подписаться на одну публикацию и отписаться от другой в той же форме.

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

Вот моя тестовая форма, чтобы понять основную идею.

    function test(){
    	var checked=false;
    	var elements = document.getElementsByClassName("select");
    	
    	for(var i=0; i < elements.length; i++){
    		if (elements[i].checked) {
    			checked = true;
    			alert("Checked");
    			console.log("checked", true);
    		}
    	}
    	
    	if (!checked) {
    		alert("Unchecked");
    		console.log("unchecked", true);
    	}
    	return checked;
    }
    <form>
    Set 1 <br>
      <input class="select" type="radio" name="A" id="subscribe1"> subscribe 1 <br>
      <input class="select" type="radio" name="A" id="unsubscribe1"> unsubscribe 1 <br>
      <hr>
    Set 2 <br>
      <input class="select" type="radio" name="B" id="subscribe2"> subscribe 2 <br>
      <input class="select" type="radio" name="B" id="unsubscribe2"> unsubscribe 2 <br>
        <hr>
      <input type="reset" value="Reset">
      <button type="button" onClick="test();">Run Test </button>
    </form>

1 Ответ

0 голосов
/ 03 февраля 2019

Это должно сработать.Использование конструкции if/else для определения КАЖДОГО состояния радиосвязи:

function test() {
  var checked = false;
  var elements = document.getElementsByClassName("select");

  for (var i = 0; i < elements.length; i++) {
    if (elements[i].checked) {
      checked = true;
      alert(elements[i].id + " Checked");
      console.log(elements[i].id, "checked", true);
    } else {
      alert(elements[i].id + " Unchecked");
      console.log(elements[i].id, "unchecked", true);
    }
  }
  return checked;
}
<form>
  Set 1 <br>
  <input class="select" type="radio" name="A" id="subscribe1"> subscribe 1 <br>
  <input class="select" type="radio" name="A" id="unsubscribe1"> unsubscribe 1 <br>
  <hr> Set 2 <br>
  <input class="select" type="radio" name="B" id="subscribe2"> subscribe 2 <br>
  <input class="select" type="radio" name="B" id="unsubscribe2"> unsubscribe 2 <br>
  <hr>
  <input type="reset" value="Reset">
  <button type="button" onClick="test();">Run Test </button>
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...