установить все флажки одним флажком не работает - PullRequest
0 голосов
/ 02 июля 2010

следующий мой код, может кто-нибудь сказать мне, что происходит не так.

<input type="checkbox" name="Chk[]" value="<?php echo($arr['id']); ?>" onClick="Click()" id="CK">// all checkboxex
<input onClick="selectall()" type="checkbox" value="yes" name="c1">// one checkbox
/*function called*/
function selectall()
    {
         if(document.frm.chk.value=="false")
         {
             document.frm.chk.value="true";
             for(var i=0; i<document.frm.elements.length; i++)
               {
                 if((document.frm.elements[i].type)=="checkbox")
                   {
                     document.frm.elements[i].checked = true;
                   }
                }
         }
        else if(document.frm.chk.value=="true")
        {
            document.frm.chk.value="false";
             for(var i=0; i<document.frm.elements.length; i++)
               {
                 if((document.frm.elements[i].type)=="checkbox")
                   {
                     document.frm.elements[i].checked = false;
                   }
                }
        }
    }

Ответы [ 2 ]

0 голосов
/ 02 июля 2010

использовать document.form не document.frm

0 голосов
/ 02 июля 2010

Я схватил ваш код и немного подправил его, но, похоже, он работает ...

    <form name='frm'>
<input type="checkbox" name="chk" value="<?php echo($arr['id']); ?>" onClick="Click()" id="CK">// all checkboxex
<input onClick="selectall()" type="checkbox" value="yes" name="c1">// one checkbox
</form>
/*function called*/
<script>
function selectall()
{
if(!document.frm.chk.checked)
{
    document.frm.chk.value="true";
    for(var i=0; i<document.frm.elements.length; i++)
    {
        if((document.frm.elements[i].type)=="checkbox")
        {
            document.frm.elements[i].checked = true;
        }
    }
}
else if(document.frm.chk.checked)
{
  document.frm.chk.value="false";
    for(var i=0; i<document.frm.elements.length; i++)
    {
        if((document.frm.elements[i].type)=="checkbox")
        {
            document.frm.elements[i].checked = false;
        }
    }
}
}
</script>     

Теперь, когда вы нажимаете второй флажок, он проверяет / снимает флажок другого.Пришлось проверять проверенное свойство, а не значение.

Да, и, как сказал @ Гордон, гораздо проще использовать отладчик, такой как Firebug, чтобы выяснить, почему он не работает.Предполагается, что ваша форма называется называется frm?

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