如何在选择某个选择列表值时禁用输入字段

时间:2013-05-14 16:09:04

标签: javascript disabled-input

当从选择列表中选择特定值时,如何禁用输入字段文本并使其隐藏?在我的代码中,我需要禁用并在从我的下拉菜单中选择“美国”时隐藏输入文本。

我的HTML: JSFiddle Link

我的Javascript:

document.getElementById('BillingCountryCode').onchange = function () {
    if(this.value != '840') {
        document.getElementById("BillingStateProvince").disabled = true;
        document.getElementById("BillingStateProvince").style.display="none"
    } else {
        document.getElementById("BillingStateProvince").disabled = false;
        document.getElementById("BillingStateProvince").style.display="block"
    }
}

2 个答案:

答案 0 :(得分:3)

你的小提琴的问题是你有两个具有相同ID的元素。您可以完全执行已经存在的操作,只需更改状态下拉列表或文本输入中的ID即可。更新的代码可能如下所示,如果您只是将文本输入命名为2:

document.getElementById('BillingCountryCode').onchange = function () {
    if(this.value != '840') {
        document.getElementById("BillingStateProvince").disabled = true;
        document.getElementById("BillingStateProvince").style.display="none";
        document.getElementById("BillingStateProvince2").disabled = false;
        document.getElementById("BillingStateProvince2").style.display="block";
    }

    else {
        document.getElementById("BillingStateProvince").disabled = false;
        document.getElementById("BillingStateProvince").style.display="block";
        document.getElementById("BillingStateProvince2").disabled = true;
        document.getElementById("BillingStateProvince2").style.display="none";
    }
}

答案 1 :(得分:0)

如果我有问题,只需将if条件反转为:

if(this.value === "840") { ... } 

这是工作小提琴:http://jsfiddle.net/antwonlee/cf4Sz/7/