[英]Can't access form elements
我的问题是我的变量在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/>";
echo "<input style='margin-left:-15px;margin-top:20px;' type='checkbox' name='message' value='$rid' /><br/>";
编辑:而且,我曾尝试过一次代码,它可以在另一台计算机上工作,但在我的计算机上却无法正常工作。 我们有完全相同的代码...这正常吗? 怎么了?
为什么不只是:
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)开始,只是无条件地选中了该框。 在您将其退回之前,因此它将检查它是否已被检查,反之亦然。 而且,您不必在checkAll方法中将其设置为false。
另外,将“全选”按钮:
echo "<input onclick='checkAll(1);' type='button' name='master' value='Select All' /><br/>";
对于这个问题,我使用了原型js库的强大功能
选中您的复选框<input style='margin-left:-15px;margin-top:20px;' type='checkbox' name='message' value='$rid' />
<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;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.