如何在Webform中使用Java Script启用禁用字段

时间:2012-10-03 12:03:56

标签: c# javascript asp.net

我创建了一个网页“Default.aspx”,其中我已经拍摄了字段: 名字,姓氏,账户名称,标题(单选按钮列表),AccountNumber和AccountFormat 在“Default.aspx”页面下,我也使用了单选按钮列表,其值为是和否。如果我选​​择是,则以下字段可见性应设置为false:

名字,姓氏

如果我选择“否”,则以下字段可见性应设置为true:

帐户名称,帐号

为此,我在“Default.aspx”

中编写了以下Java Script代码
function EnableDisableTaxID() {
        if (document.getElementById("<%=rdOpeningSubAccount.ClientID %>") != null) {

            var openSubAccountList = document.getElementById('<%= rdOpeningSubAccount.ClientID  %>');
            var fbo1RadioList = document.getElementById('<%=fbo1RadioButtonList.ClientID %>').value;
            var isOpenSubAccount;

            if (openSubAccountList != null) {

                var openSubAccount = openSubAccountList.getElementsByTagName("input");

                for (var i = 0; i < openSubAccount.length; i++) {

                    if (openSubAccount[i].checked) {

                        isOpenSubAccount = openSubAccount[i].value;
                        alert("Print" + isOpenSubAccount);
                    }
                }
            }
            alert(typeof(isOpenSubAccount));
            if (isOpenSubAccount == 'true') {
                FirstName.visible = true;
                LastName.visible = false;
                AccountTitling.visible = true;
                lblFirstName.visible=false;
                lblLastName.visible=false;

            }
            else if (isOpenSubAccount == 'false') {
                AccountTitling.visible = true;
                AccountNumber.visible = false;
                lblAccountTitling.visible = true;
                lblAccountNumber.visible = false;
            }
        }
    }

但是,我从单选按钮列表中获取所需的值,但是,当我去检查radiobuttonlist的所选值是否为true时,上面的代码不起作用。我不知道我错过了什么。我知道直接使用下面的代码是行不通的:

if (isOpenSubAccount == 'true') {
                FirstName.visible = true;
                LastName.visible = false;
                AccountTitling.visible = true;
                lblFirstName.visible=false;
                lblLastName.visible=false;

            }

请帮助我,因为我被困在这里......

3 个答案:

答案 0 :(得分:1)

对于Visible = false;

document.getElementById('FirstName').style.visibility="hidden";

对于Visible = true;

document.getElementById('FirstName').style.visibility="visible";

启用:

document.getElementById('FirstName').disabled = false;

禁用:

document.getElementById('FirstName').disabled = true;

答案 1 :(得分:0)

没有; document.getElementById只会获取具有您指定ID的元素(HTML规范非常明确,页面上只有一个元素可以具有特定ID)。

每个单选按钮都有不同的ID属性,但是如果查看页面的HTML源代码,您会看到列表中的所有单选按钮都具有相同的NAME属性。这就是你应该使用“单选按钮的名称”。

onclick =“GetRadioButtonValue('&lt;%= radiobuttonlist1.ClientID%&gt;')”

function GetRadioButtonValue(id)

        {

            var radio = document.getElementsByName(id);

            for (var j = 0; j < radio.length; j++)

            {

                if (radio[j].checked)

                    alert(radio[j].value);

            }

        }

答案 2 :(得分:0)

可以为

完成

不可见

document.getElementById('id-name').style.display='none';

<强>可见

document.getElementById('id-name').style.display='block';

停用

document.getElementById('id-name').setAttribute('disabled', 'disabled');

启用

document.getElementById('id-name').removeAttribute('disabled');