Снимите флажок, и другой флажок будет снят - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть два флажка в форме. onclick, если флажок, называемый электронной почтой, снят, как я могу заставить другой флажок также снимать флажок (если он отмечен)?

document.getElementById('email').onclick = function() {
     if (!this.checked) {
        !document.getElementById("other").checked;
    } else {
        // if not checked ...
    }
};

Полностью ли я лаю не на том дереве? Любая помощь оценивается

Ответы [ 5 ]

0 голосов
/ 27 апреля 2018

Это должно помочь

function check() {
if(document.getElementById("email").checked){ 
    document.getElementById("other").checked = true;
}else{
    document.getElementById("other").checked = false;
}

}

HTML

<input type='checkbox' id='email' name='checkbox' onclick="check()" >email
<input type='checkbox' id='other' name='checkbox'>other
0 голосов
/ 27 апреля 2018

Вы можете добавить прослушиватель событий в email флажок (что является хорошей практикой), а затем проверить, если это проверка или нет, и работать с другим флажком в соответствии с этим

Например

var ckb = document.getElementById('email')
ckb.addEventListener("click", function(e){
  if(!e.target.checked)
      document.getElementById('ot').checked = false;
})
<input type="checkbox" name="na" value="email" id="email">Email<br>
<input type="checkbox" name="na" value="other" id="ot">Other
0 голосов
/ 27 апреля 2018

Вы можете сделать это как:

<form id="test" action="#" method="post">
    <div>
        <input type="checkbox" name="check" id="check"/>
    </div>

        <div>
        <input type="checkbox" name="check2" id="check2"/>
    </div>
</form>

document.getElementById ('check'). Onclick = function () {

 if (!this.checked) {
    document.getElementById("check2").checked = false;
} else {

    // other logic ...
}};

Проверьте это онлайн на jsfiddle: https://jsfiddle.net/3dtq0w8x/

0 голосов
/ 27 апреля 2018

Чтобы синхронизировать проверку обоих одновременно, вам нужно просто использовать this.checked первого кликаемого по атрибуту checked второго, например:

document.getElementById("other").checked = this.checked;

ПРИМЕЧАНИЕ: Это будет работать в одну сторону, что означает, что проверка будет синхронизирована только при нажатии на первую checkbox, к которой вы прикрепили событие click.

document.getElementById('email').onclick = function() {
    document.getElementById("other").checked = this.checked;
};
<input id="email" type="checkbox" /> CHECKBOX 1
<br>
<input id="other" type="checkbox" /> CHECKBOX 2
0 голосов
/ 27 апреля 2018

В вашем тестовом коде вы не устанавливаете для флажок свойства «other» любое значение. Вы просто читаете его значение, а затем инвертируете его (с помощью!).

Вы можете попробовать:

document.getElementById("other").checked = false;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...