簡體   English   中英

更改javascript,選中復選框

[英]Altering javascript, select check boxes

我有此代碼選擇所有復選框:

<html>
<head>
<script language="javascript">
function checkAll(){
    for (var i=0;i<document.forms[0].elements.length;i++)
    {
        var e=document.forms[0].elements[i];
        if ((e.name != 'allbox') && (e.type=='checkbox'))
        {
            e.checked=document.forms[0].allbox.checked;
        }
    }
}
</script>
</head>

<body>
  <form>
    <input type="checkbox" value="on" name="allbox" onclick="checkAll();"/> Check all<br />
    <h3>Fruit</h3>
    <input type="checkbox" value="on" name="oranges" /> Oranges<br/>
    <input type="checkbox" value="on" name="bananas" /> Bananas<br/>
  </form>
</body>
</html>

在這種情況下,我應該如何更改(以及如何更改邏輯)JavaScript:

<body>
    <form id="menu">
       <input type="checkbox" value="on" name="allbox" onclick="checkAll();"/> Check all<br />
    </form>
    <h3>Fruit</h3>
    <form id="select">
       <input type="checkbox" value="on" name="oranges" /> Oranges<br/>
       <input type="checkbox" value="on" name="bananas" /> Bananas<br/>
    </form>
</body>

第二個示例中有兩種形式。

在JavaScript中,文檔中包含所有形式的數組: document.forms

JavaScript中的數組是從零開始的,因此第一種形式可以通過forms[0]訪問,第二種forms[1]使用forms[1] ,依此類推。

由於示例中的復選框位於第二個表單中,因此只需更改JavaScript即可訪問第二個表單中的元素。

...
    for (var i=0;i<document.forms[1].elements.length;i++)
    {
        var e=document.forms[1].elements[i];
...

或者因為您的第二個表單具有ID,您可以通過ID來訪問它,如下所示:

...
for(var i=0;i<document.getElementById("select").elements.length;i++)
{
    var e=document.getElementById("select").elements[i];
...

您在第二頁上有兩種形式,但是您的腳本僅引用一種形式。 您無需將表單分為兩部分(從您當前的代碼來看)。

但是也可以保留兩個表格。 在腳本中的所有位置,將document.forms[0]替換為document.forms[1]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM