Установите / снимите все флажки без зацикливания и без рамки - PullRequest
0 голосов
/ 17 июня 2011

Можно ли установить или снять флажок на странице а) без циклов и б) без использования инфраструктуры Javascript, такой как jQuery?

Этот вопрос связанно он (не) проверяет все флажки на странице с помощью jQuery.

Я ожидаю, что ответ на мой вопрос, вероятно, будет "нет", но если есть какой-то странный, хакерский способ сделать это (не странныйи не хакер это тоже хорошо!) тогда хотелось бы узнать.Назовите это любопытством, если хотите.

Редактировать: Я полагаю, что я действительно спрашиваю, это способ сделать это в O (1) (постоянное время), а не O (n) (линейное время относительнона количество флажков)

Ответы [ 4 ]

2 голосов
/ 17 июня 2011

Если кнопки находятся в форме, вы можете использовать кнопку сброса, если состояние по умолчанию не проверено, и вы не возражаете сбросить все другие элементы управления в форме.В противном случае вам придется использовать цикл независимо от того, используете ли вы POJS или «каркас».

Смотри, ма, без скрипта!

<form action="#">
  <div>
    <input type="checkbox" name="cb0">
    <input type="checkbox" name="cb1">
    <input type="checkbox" name="cb2">
    <input type="checkbox" name="cb3">
    <br>
    <input type="reset" value="Uncheck all">
  </div>
</form>
1 голос
/ 17 июня 2011

Один из способов проверки или снятия отметки с набора флажков на странице - ссылаться на каждый из них в отдельности.

Это соответствует как критериям "a" (без циклов), так и критериям b (без рамок)

1 голос
/ 17 июня 2011

Вы можете сделать это с map (), который может быть или не быть циклом, в зависимости от того, насколько строгим является определение, которое вы используете для «цикла» :) Но с практической точки зрения это просто еще один способ приведения цикла,Я бы сказал, что ответ на ваш вопрос «нет».


РЕДАКТИРОВАТЬ:
var checkboxes = getElement...
checkboxes.map(function(c) {
    c.checked = true;
});
0 голосов
/ 17 июня 2011

Вы можете изменить / переопределить полный HTML-код:

<div id="checkBoxes">
<input name="foo" type="checkbox" value="1" />
<input name="bar" type="checkbox" value="1" />
<input name="baz" type="checkbox" value="1" />
</div>

<script type="text/javascript">
function checkAll(){
    document.getElementById("checkBoxes").innerHTML = 
         '<input name="foo" type="checkbox" value="1" checked="checked" />'
        +'<input name="bar" type="checkbox" value="1" checked="checked" />'
        +'<input name="baz" type="checkbox" value="1" checked="checked" />';
}
function uncheckAll(){
    document.getElementById("checkBoxes").innerHTML = 
         '<input name="foo" type="checkbox" value="1" />'
        +'<input name="bar" type="checkbox" value="1" />'
        +'<input name="baz" type="checkbox" value="1" />';
}
</script>

нет петли, нет фреймворка, просто немного неэстетично ..

...