繁体   English   中英

无法访问表单元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM