2010-05-20 85 views
0

我的问题是我的变量不能在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/>";


编辑:而且,我尝试了代码曾几何时,它在另一台计算机上工作,但在我的工作,它没有工作。我们有完全相同的代码......这是正常的吗?哪里不对?

+0

时,有在收件箱中一个消息,它工作时,我删除所有的[I]和我在checkAll (“一世”); – linkcool 2010-05-20 03:21:38

+0

对于其他复选框,HTML的外观如何? – 2010-05-20 03:30:08

+0

如果你正在创建一个只检查所有复选框的函数,那么它不需要将一个变量作为输入。此外,你可以简单地这样做:if(document.demo.master [i] .checked){document.demo.message [i] .checked = document.demo.master [i] .checked; } – yarmiganosca 2010-05-20 03:32:50

回答

0

为什么不干脆:

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?)。我只需选择全部和全部取消按钮。

我删除了参数,改变了我,开始在0(0-索引),并开了它无条件地选中此复选框。在你将它倒退之前,它会检查它是否已经被检查过,反之亦然。而且你不需要在checkAll方法中将它设置为false。

同时,使全选按钮:

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

我认为他的目的是提供一个可以切换一组复选框的复选框。可能更好地命名为'toggleAll' – 2010-05-20 03:36:39

+0

是或checkall,并且如果它们已被选中,则取消选中它们 – linkcool 2010-05-20 15:27:45

0

对于这个问题,我使用的prototype 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; 
});