无法访问表单元素

时间:2010-05-20 03:20:28

标签: javascript select function variables onclick

我的问题是我的变量在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> in checkAll("i")


编辑:每封邮件的每个复选框都有以下代码:echo "<input style='margin-left:-15px;margin-top:20px;' type='checkbox' name='message' value='$rid' /><br/>";


编辑:而且,我曾经尝试过一段代码并且它可以在另一台计算机上运行,​​但是在我的计算机上却没有用。我们有完全相同的代码......这是正常的吗?有什么问题?

2 个答案:

答案 0 :(得分: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检查多久?)。我只需选择全部和取消全选按钮。

我删除了参数,将i更改为0(0-indexed),然后无条件地选中该框。在你倒退之前,它会检查它是否已被检查,反之亦然。而且您不需要在checkAll方法中将其设置为false。

另外,选择All All a按钮:

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

答案 1 :(得分: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;
 });