2016-04-16 4 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. Ваш идентификатор: 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> 

Это не работает в вашем Notepad ++, потому что вы читаете этот файл в brwoser который будет иметь file:// запрос и не https://. Он работает в вашей скрипке, потому что там вы можете ссылаться на библиотеку по-другому, но Допустимый путь.

Также указывая на ошибку в коде.

$('#seniordis').removeAttr('disabled', true); Этой линия

Здесь seniordis в значении атрибута имени вашего выбора тега, а не идентификатор, если он ... так что используйте либо $('[name="seniordis"]') целевого элемента по имени или $('#select') целевого элемента по идентификатору ,

Так что код должен быть

$('#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> 
Смежные вопросы