2013-10-21 58 views
1

我有兩個選擇下拉列表中選擇框:的Javascript禁用另一種選擇框中選擇

<select name="internal_message"> 
<option value="yes">Yes</option> 
<option value="" selected="selected">No</option> 
</select> 

<select name="internal_message_agent"> 
<option value="">Choose</option>.... etc 
</select> 

我曾嘗試:

<select name="internal_message"> 
      <option value="yes" onClick="document.getElementById('internal_message_agent').disabled=!this.selected;">Yes</option> 
      <option value="" selected="selected">No</option> 
      </select> 

,但它不工作 - 我怎麼能得到它的工作,以禁用internal_message_agent select元素被禁用,當internal_message選擇值是"No"並啓用它時所選擇的選項是"Yes"

回答

4

的ID添加到每個選擇並使用jQuery像這樣禁用它:

$('#box1').on('change', function(){ 
if($(this).val()==='no'){ 
    $('#box2').attr('disabled', 'disabled'); 
}else{ 
    $('#box2').attr('disabled', false); 
} 
}); 

http://jsfiddle.net/3MCaG/1/

+0

很好的答案。我也只是將disabled屬性添加到'internal_message_agent'並添加一個額外的空白''到列表中以防止任何默認選擇。 +1! – usernolongerregistered

+0

如果選擇了internal_message選項「否」,那麼internal_message_agent將被禁用,如果選擇的選項是「Yes」,那麼將啓用internal_message_agent – charlie

+0

我不認爲我理解您的問題。 – ldmo

0

下面是它看起來就像用Javascript和HTML。

<!DOCTYPE html> 
<html> 
<head> 
</head> 
<script> 
function validate(){ 
    var b1 = document.getElementById("box1"); 
    var f = b1.options[b1.selectedIndex].value; 
    var b2 = document.getElementById("box2"); 
     if(f == "no"){ 
     b2.disabled="disabled"; 
     } 
    else{ 
    b2.disabled=""; 
    } 
} 
</script> 
<select id="box1" onchange="validate()"> 
    <option id="yes" value="yes">Yes</option> 
    <option id="no" value="no" selected="selected">No</option> 
</select> 

<select id="box2" disabled> 
    <option></option> 
    <option value="">Choose</option> 
</select> 
</html> 
相關問題