1

我对这个简单的 Javascript 代码有疑问:

function select_checkbox(i)
{
    switch(i)
    {
        case 3: 
        if (document.upload_form.3.checked=true)
        {   
            document.upload_form.4.checked=true; 
            document.upload_form.4.disabled=true; 
            document.upload_form.5.checked=true; 
            document.upload_form.5.disabled=true;
        }

        if (document.upload_form.3.checked=false)
        {   
            document.upload_form.4.checked=false; 
            document.upload_form.4.disabled=false; 
            document.upload_form.5.checked=false; 
            document.upload_form.5.disabled=false;
        }  

        break;

        [other code]

与此 HTML 代码相关联:

     <input type="checkbox" name="3" onclick="select_checkbox(3)" />
     <input type="checkbox" name="4" onclick="select_checkbox(4)" /> 
     <input type="checkbox" name="5" onclick="select_checkbox(5)" />

我想这样做:

  • 如果我选择复选框“3”,请检查并禁用 4 和 5
  • 如果我选中复选框“4”,请选中并禁用 3 + 取消选中并禁用 5
  • 如果我选择复选框“5”,取消选中并禁用 3 和 4
  • 取消选中时重新启用并取消选中所有

代码的第一部分(我只报告复选框“3”的一部分)效果很好,但是通过取消选中复选框来恢复配置时遇到问题。

4

2 回答 2

1

您不能通过点语法访问以数字开头的属性,请使用[]语法。此外,您在 if 语句中进行分配而不是比较。

    function select_checkbox(i)
    {
        switch(i)
        {
            case 3: 
            if (document.upload_form['3'].checked)
            {   
                document.upload_form['4'].checked=true; 
                document.upload_form['4'].disabled=true; 
                document.upload_form['5'].checked=true; 
                document.upload_form['5'].disabled=true;
            }

            if (!document.upload_form['3'].checked)
            {   
                document.upload_form['4'].checked=false; 
                document.upload_form['4'].disabled=false; 
                document.upload_form['5'].checked=false; 
                document.upload_form['5'].disabled=false;
            }  

            break;

                            [other code]
于 2012-09-19T20:45:58.723 回答
1
if (document.upload_form.3.checked=true)
{ 
}

should be replaced by

if (document.upload_form.3.checked==true)
{
}

那应该是==

于 2012-09-19T20:41:01.213 回答