Флажок HTML onclick названный в JavaScript

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

<input type="checkbox" id="check_all_1" name="check_all_1" title="Select All" onclick="selectAll(document.wizard_form, this);">
<label for="check_all_1" onclick="toggleCheckbox('check_all_1'); return false;">Select All</label>

Это - мой HTML, который работает, как он должен (нажатие на текст нажмет поле). JavaScript для него довольно прост:

function toggleCheckbox(id) {
    document.getElementById(id).checked = !document.getElementById(id).checked;
}

Однако я хочу, чтобы onclick произошел для входа, когда маркировка - то, что делает флажок, который будет нажат. В это текущее время не идет onClick js. Каково одно предложение о том, как сделать это? Я пытался добавить onclick входа к onclick маркировки, но это не работает.

Любые предложения/решения были бы замечательны.

41
задан Craig 7 July 2010 в 18:25
поделиться

4 ответа

Как насчет того, чтобы поставить флажок в метку , сделать метку автоматически "чувствительной к щелчку" для флажка и дать checkbox a onchange событие?

<label ..... ><input type="checkbox" onchange="toggleCheckbox(this)" .....> 

function toggleCheckbox(element)
 {
   element.checked = !element.checked;
 }

Кроме того, это позволит поймать пользователей, использующих клавиатуру для переключения флажка, чего не может сделать onclick .

66
ответ дан 27 November 2019 в 00:42
поделиться

Ярлык без onclick будет вести себя так, как вы ожидаете. Она изменяет ввод. Что вы действительно хотите, так это выполнить selectAll() при щелчке на ярлыке, верно? Затем добавьте select all только к метке onclick. Или оберните ввод в метку и назначьте onclick только для метки

<label for="check_all_1" onclick="selectAll(document.wizard_form, this);">
  <input type="checkbox" id="check_all_1" name="check_all_1" title="Select All">
  Select All
</label>
2
ответ дан 27 November 2019 в 00:42
поделиться

jQuery имеет функцию, которая может сделать это:

  1. включите следующий скрипт в голову:

    
    

    (или просто скачайте файл jQuery.js с сайта и включите его локально)

  2. используйте этот скрипт для переключения флажка при нажатии на вход:

    var toggle = false;
    $("#INPUTNAMEHERE").click(function() {
     $("input[type=checkbox]").attr("checked",!toggle);
     toggle = !toggle;
    }); 
    

Это должно сделать то, что вы хотите, если я понял, что вы пытались сделать.

0
ответ дан 27 November 2019 в 00:42
поделиться

Вы также можете извлечь код события из HTML, например:

<input type="checkbox" id="check_all_1" name="check_all_1" title="Select All" />
<label for="check_all_1">Select All</label>

<script>
function selectAll(frmElement, chkElement) {
    // ...
}
document.getElementById("check_all_1").onclick = function() {
    selectAll(document.wizard_form, this);
}
</script>
0
ответ дан 27 November 2019 в 00:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: