2013-05-14 51 views
0

如何從選擇列表中選擇某個值時禁用並使輸入字段文本隱藏?在我的代碼中,當我從下拉列表中選擇「美國」時,我需要禁用並使輸入文本隱藏。如何在選擇某個選擇列表值時禁用輸入字段

我的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" 
    } 
} 
+1

ID必須是唯一的。如果你想隱藏第二個輸入,「其他國家」,你必須給它一個不同於另一個的ID,或者改爲使用類。這也不能完全解決你的問題,因爲你的問題想隱藏標籤「其他國家」。最好將兩個輸入都包裝在一個元素中並隱藏/顯示包裝器。 – Josh 2013-05-14 16:15:15

回答

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"; 
    } 
} 
+0

有沒有辦法解決它。我用來處理表單的第三方使用ID來處理該卡片。有沒有辦法可以爲「BillingStateProvince2」添加Class而不是ID? – 2013-05-14 17:03:19

+0

當然,你可以找到你想要的元素,名稱,ID,類等等。我認爲真正的答案是你的HTML無效,並且我個人會使用不同的方法來完成這項工作,例如分配您的條件塊中的ID。雖然您可以使用純Javascript來循環並找到合適的類,但在這種特定情況下,您可能更容易使用jQuery。 – Duffmaster33 2013-05-14 17:10:41

+0

如何使用jQuery實現這個目標?我嘗試這樣做:document.getElementById('BillingCountryCode')。onchange = function(){ if(this.value!='840'){('#BillingStateProvince')。attr('disabled','disabled 「); } else { document.getElementById(「BillingStateProvince」)。disabled = false; document.getElementById(「BillingStateProvince」)。style.display =「block」; ('。OtherStateProvince')。attr('disabled','disabled'); } } – 2013-05-14 17:14:02

相關問題