Возврат false из функции onclick флажка - PullRequest
0 голосов
/ 02 декабря 2018

Я хочу взять на себя ручное управление тем, установлен ли данный флажок.По этой причине я предоставляю пользовательскую функцию onclick и return false от нее: я думаю, что если я не return false, то действие по умолчанию (отменить флаг input checked) переопределит то, чтоЯ настраивал в своей пользовательской функции.

let input = document.getElementsByTagName('input')[0]

input.onclick = function() {
  if(input.checked)
    input.checked = false
  else
    input.checked = true
  
  return false
}
<input type="checkbox"/>

Однако это не работает.return false отменяет то, что я сделал!Он сбрасывает флажок в то состояние, в котором он находился до щелчка!

Удаление return false также не годится: тогда флажок переводит себя в состояние, в котором он не был перед нажатиемэто снова отменяет все, что я делаю в своей пользовательской функции onclick:

let input = document.getElementsByTagName('input')[0]

input.onclick = function() {
  if(input.checked)
    input.checked = true // click should be futile
  else
    input.checked = false //click should be futile
}
<input type="checkbox"/>

Как я могу контролировать вручную, установлен флажок или нет?Как я могу сделать так, чтобы флажок не отменял то, что я установил в своем пользовательском обработчике onclick?

Ответы [ 3 ]

0 голосов
/ 02 декабря 2018

Почему вы хотите это сделать?Если вы хотите установить состояние checkBox по некоторым данным, есть простые способы.Или, если вы хотите инициировать изменение состояния флажка из другого места, вам следует добавить событие onClick где-то еще, а не сам флажок.

0 голосов
/ 03 декабря 2018

Я вернул твою правду и ложь.Если условие не выполнено, используйте это.Если метс использовать иначе.После того, как вы выбрали движения монстров, установите значение checkBox из модального.

let input = document.getElementsByTagName('input')[0]

input.onclick = function() {
  if(input.checked)
    input.checked = false
  else
    input.checked = true 
}
<input type="checkbox"/>

let input = document.getElementsByTagName('input')[0]

input.onclick = function() {
  if(input.checked)
    input.checked = true // click should be futile
  else
    input.checked = false //click should be futile
}
<input type="checkbox"/>
0 голосов
/ 02 декабря 2018

Попробуйте вернуть значения из функции вместо их установки:

let input = document.getElementsByTagName('input')[0]

input.onclick = function() {
  if(input.checked)
    return true // click should be futile
  else
    return false //click should be futile
}
<input type="checkbox"/>

Здесь значение флажка нельзя изменить после его проверки.Это то, что вы были после?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...