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