2013-01-30 3 views
1

У меня есть событие onChange, но после его изменения он не запускается. Я проверил, что правильно назову поля.Событие JQuery Onchange не запускается

$("#SRIEquipmentDDL").change(function() { 
    if ($(this).val() == "3") { 
     $("#SRILift").show(); 
    } else { 
     $("#SRILift").hide(); 
    } 
}); 

<div id="SRIEquipment"> 
      <div class="TextField">Equipment:</div> 
      <div class="InputField"> 
       <select name="SRIEquipmentDDL" id="SRIEquipmentDDL" class="DropDownField"> 
        <option value="0" <?php if ($_POST['SRIEquipmentDDL'] == "0") {echo "selected='selected'";} ?> >Select Chair Type</option> 
        <option value="1" <?php if ($_POST['SRIEquipmentDDL'] == "1") {echo "selected='selected'";} ?> >Manual Wheelchair</option> 
        <option value="2" <?php if ($_POST['SRIEquipmentDDL'] == "2") {echo "selected='selected'";} ?>>Power Wheelchair</option> 
        <option value="3" <?php if ($_POST['SRIEquipmentDDL'] == "3") {echo "selected='selected'";} ?>>Lift Chair</option> 
        <option value="4" <?php if ($_POST['SRIEquipmentDDL'] == "4") {echo "selected='selected'";} ?>>Scooter</option> 
        <option value="5" <?php if ($_POST['SRIEquipmentDDL'] == "5") {echo "selected='selected'";} ?>>Lifts</option> 
        <option value="6" <?php if ($_POST['SRIEquipmentDDL'] == "6") {echo "selected='selected'";} ?>>CPM</option> 
        <option value="8" <?php if ($_POST['SRIEquipmentDDL'] == "7") {echo "selected='selected'";} ?>>Walker</option>       
        <option value="9" <?php if ($_POST['SRIEquipmentDDL'] == "8") {echo "selected='selected'";} ?>>Other</option> 
       </select> 
      </div> 
     </div> 
     <div id="SRILift"> 
      <div class="TextField">Lift Type:</div> 
      <div class="InputField"> 
       <select name="SRILiftTypeDDL" id="SRILiftTypeDDL" class="DropDownField"> 
        <option value="0" <?php if ($_POST['SRILiftTypeDDL'] == "0") {echo "selected='selected'";} ?> >Select Lift Type</option> 
        <option value="1" <?php if ($_POST['SRILiftTypeDDL'] == "1") {echo "selected='selected'";} ?> >Stair Lift</option> 
        <option value="2" <?php if ($_POST['SRILiftTypeDDL'] == "2") {echo "selected='selected'";} ?>>Porch Lift</option> 
        <option value="3" <?php if ($_POST['SRILiftTypeDDL'] == "3") {echo "selected='selected'";} ?>>Outside Vehicle Lift</option> 
        <option value="4" <?php if ($_POST['SRILiftTypeDDL'] == "4") {echo "selected='selected'";} ?>>Inside Vehicle Lift</option> 
        <option value="5" <?php if ($_POST['SRILiftTypeDDL'] == "5") {echo "selected='selected'";} ?>>Ceiling Lift</option>      
        <option value="6" <?php if ($_POST['SRILiftTypeDDL'] == "6") {echo "selected='selected'";} ?>>Other</option> 
       </select> 
      </div> 
     </div> 
+0

ли загружен событие OnChange связан после страницы? –

+0

Похоже, вы пытаетесь привязать обработчик события до того, как элемент существует. Прочтите [jQuery tutorial] (http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery), чтобы узнать, как правильно настроить jQuery. Также посмотрите на этот вопрос: http://stackoverflow.com/q/14028959/218196. –

+0

есть. $ (document) .ready (function() {У меня есть это в начале документа jquery под заголовком. –

ответ

0

Попробуйте что-то вроде этого:

$('#yourSelectId').change(function() { 
    var selectedVal = $('#yourSelectId option:selected').attr('value'); 
}); 

убедитесь, что вы код внутри готовой функции - http://api.jquery.com/ready/ или это после HTML, которые создают выберите

+0

$ (document) .ready (function() {находится в начале, я говорю о том, что вызывает его. У меня есть другие события onChange, подобные этому, которые работают нормально. Именно это не работает. –

+0

вы получаете ошибку javascript? – kleinohad

+0

Я не, это странно. Я попытаюсь попробовать несколько разных методов, если они не будут ни одного, ни одного из них. –

-1

Вы можете попробовать Метод jquery bind()? Если это не работает, попробуйте проверить значение внутри вашего выбрать ... может быть есть INTEGERS попробовать то изменить условие:

если ($ (это) .val() == 3) {

+0

'.change' и' .bind' просто вызовите '.on' внутренне. Переключение метода не будет иметь значения. –

+0

.bind устарел с 1.7, используйте вместо .on вместо – Tjirp

0

Проблема, с которой вы сталкиваетесь, заключается в том, что часто выбираемые поля не будут запускать событие изменения, пока они focused.

Поскольку вы используете JQuery, решение должно использовать .click() в сочетании с .blur(), чтобы вызвать событие onchange.

Я нашел эту скрипку, который демонстрирует, что вы хотите сделать:

http://jsfiddle.net/acrashik/wLWMc/

-1

Попробуйте использовать жить в вашем коде

$("#SRIEquipmentDDL").on('change',function() { 
      if ($(this).val() == "3") { 
       $("#SRILift").show(); 
      } else { 
       $("#SRILift").hide(); 
      } 
     }); 
+1

.live устарел с 1.7, используйте вместо .on вместо – Tjirp

Смежные вопросы