簡體   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