2016-04-16 86 views
1

它應該可以工作,但不幸的是它不是。我不知道我的代碼有什麼問題。當我在jsfiddle中嘗試時,它正在工作,但在我的Notepad ++中不起作用。我無法弄清楚這有什麼問題。單擊單選按鈕時下拉不會禁用

<head> 
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
    <script src="//code.jquery.com/jquery-1.10.2.js"></script> 
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
<script type="text/javascript"> 

$('input:radio[name="senior"]').change(function() { 
     if ($(this).val()=='Yes') { 
      $('#seniordis').attr('disabled',false); 
     } else 


      $('#seniordis').removeAttr('disabled', true); 
    }); 
    </script> 



</head> 



Senior : 

<input name="senior" type="radio" id="Yes" value="Yes" />Yes 
<input name="senior" type="radio" id="No" value="No" selected="selected" />No<br /> 
<select name="seniordis" id="select"> 
<option value="100" >100% discount</option> 
<option value="50">50% discount</option> 
<option value="10">10% discount</option> 
</select>     
</td> 
+0

使用$( '#seniordis')。prop('disabled',true)而不是$('#seniordis')。attr('disabled',true); –

+0

@AbuHanifa,沒有任何變化 – codeSeven

+0

使用onclick事件而不是更改 – Hkachhia

回答

0

您的問題是,senoirdis是名稱不是ID。你的ID是select

$().ready(function() 
{ 
    $('input:radio[name="senior"]').change(function() { 
     if ($(this).val()=='Yes') { 
      $('#select').prop('disabled',false); 
     } 
     else 
     { 
      $('#select').prop('disabled',true); 
     } 
    }); 

}); 
0

問題不在代碼中。 問題在於您引用庫的方式。更改引用有https://

<link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
<script src="https://code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 

這是不是在你的記事本工作++,因爲你正在查看在brwoser這個文件,這將有file://要求,而不是https://。它在你的小提琴中奏效,因爲在那裏你可能會以不同的方式引用這個庫,但是有效的方法

還指出您的代碼中的錯誤。

此行$('#seniordis').removeAttr('disabled', true);

在您選擇標籤的name屬性而不是id的值這裏seniordis如果......那麼請使用$('[name="seniordis"]')目標通過名稱或$('#select')元素爲目標的ID的元素。

因此,代碼應該是

$('#select').attr('disabled', true);

或本

$('#select').removeAttr('disabled');

-1
$('input:radio[name="senior"]').change(function() { 
    if ($(this).val() == 'Yes') { 
     $('select[name="seniordis"]').attr('disabled',false); 
    } else { 
     $('select[name="seniordis"]').attr('disabled', true); 
    } 
}); 

jsFiddle

+0

爲什麼它在jsFiddle中工作?但在我的記事本++不?我不知道什麼是problm @symlink – codeSeven

+0

請參閱@Reddy關於在您的腳本調用中添加https://的帖子。 – symlink

0

存在一些誤區你的代碼

  1. 此行

    input:radio[name="senior"] 
    

    必須是這個

    input[name=senior]:radio 
    
  2. 此行

    $('#seniordis').attr('disabled',false); 
    

    必須

    $('#select:input').removeAttr('disabled'); 
    

使用下面的代碼:

<div> 
    <input name="senior" type="radio" id="Yes" value="Yes" />Yes 
    <input name="senior" type="radio" id="No" value="No" />No<br /> 
    <select name="seniordis" id="select"> 
     <option value="100">100% discount</option> 
     <option value="50">50% discount</option> 
     <option value="10">10% discount</option> 
    </select> 
</div> 
<script type="text/javascript"> 
    $("input[name=senior]:radio").change(function() { 
     if ($(this).val() == "Yes") { 
      $('#select:input').removeAttr('disabled'); 
     } 
     else { 
      $('#select:input').attr('disabled', 'disabled'); 
     } 
    }); 
</script>