Не могу получить доступ к элементам формы - PullRequest
0 голосов
/ 20 мая 2010

Моя проблема в том, что мои переменные не работают в JavaScript. в начале все переменные нуждаются в именах без каких-либо символов, это глупость ... В любом случае, я пытаюсь создать функцию, которая заставляет "выбирать все флажки". Это не работает, поэтому я посмотрел на страницу источник / информация и обнаружил, что переменные не меняются.

это мой ввод:

echo "<input onclick='checkAll(1);' type='checkbox' name='master'/><br/>";

Моя функция:

function checkAll(i)
{
 for(var i=1; i < <?php echo $num; ?>; i++)
 {
  if(document.demo.master[i].checked == true)
  {
   document.demo.message[i].checked = true;
  }
  else
  {
   document.demo.message[i].checked = false;
  }
 }
}

так что да, вот и все. Я могу сказать вам, что я также пытался без <i> в: checkAll("i")


РЕДАКТИРОВАТЬ: каждый флажок для каждого сообщения имеет этот код: echo "<input style='margin-left:-15px;margin-top:20px;' type='checkbox' name='message' value='$rid' /><br/>";


РЕДАКТИРОВАТЬ: а также я однажды попробовал код, и он работал на другом компьютере, но на моем он не работал. У нас был точно такой же код ... Это нормально? Что не так?

Ответы [ 2 ]

0 голосов
/ 20 мая 2010

Для этой задачи я использую мощность прототип js lib

возьми свой флажок <input style='margin-left:-15px;margin-top:20px;' type='checkbox' name='message' value='$rid' />

добавить класс

<input class='checkall' style='margin-left:-15px;margin-top:20px;' type='checkbox' name='message' value='$rid' />

тогда

$$('.checkall').each(function(item){
   item.checked = true;
});

или если вы хотите включить / отключить опцию

$$('.checkall').each(function(item){
  if(item.checked)
    item.checked = false;
  else
    item.checked = true;
 });
0 голосов
/ 20 мая 2010

Почему бы просто:

function checkAll()
{
 for(var i=0; i < <?php echo $num; ?>; i++)
 {
   document.demo.message[i].checked = true;
 }
}

Если вы хотите переключать текущие значения:

function toggleAll()
{
 for(var i=0; i < <?php echo $num; ?>; i++)
 {
   document.demo.message[i].checked = !document.demo.message[i].checked;
 }
}

Однако на практике это не кажется очень полезным (если A проверен, а B и C не проверены, как часто вы хотите, чтобы A не проверял, а B и C проверялись?) Я бы просто использовал кнопки «Выбрать все» и «Отменить выбор всех».

Я удалил параметр, изменил i, чтобы начать с 0 (0-indexed), и просто установил флажок безоговорочно. До того, как вы сделали это задом наперед, он проверит, проверено ли это, и наоборот. И вам не нужно устанавливать значение false в методе checkAll.

Также нажмите кнопку «Выбрать все»:

echo "<input onclick='checkAll(1);' type='button' name='master' value='Select All' /><br/>";
...