2010-07-05 4 views

ответ

3

Это автоматически включает элементы снова, когда «Enable» выбран, который я предполагаю также, что вы хотите.

$('select[name=feature1]').change(function() { 
    $('input[name=feature2],input[name=feature3]').attr('disabled', $(this).val() == '0'); 
}); 
1

Добавьте некоторые идентификаторы для элементов, а затем:

$('#feature1').change(function() { 
    if(this.value === "0") { 
    $('#feature2').attr('disabled', 'disabled'); 
    $('#feature3').attr('disabled', 'disabled'); 
    } 
}); 
+0

значение никогда не будет '=== 0', так как это строка. Кроме того, некоторые старые версии не имеют 'this.value' (в тот же день вам пришлось написать' this [this.selectedIndex] .value'), поэтому для совместимости я бы рекомендовал '$ (this). val() 'или проверять' selectedIndex == 1' вместо сравнения значения. Кроме того, они не являются идентификаторами, а функция3 остается незатронутой. –

+0

Я замаскировал строку. ценность более совместима, чем когда-либо получал jQuery. Функция feature3 была там до того, как вы закончили комментарий. :) – galambalazs

1

Я предполагаю, что вы имеете идентификаторы так же, как ваши имена элементов, для простоты

jQuery('#feature1').change(function() { 
    jQuery("#feature2, #feature3").attr("disabled", jQuery(this).val() == '0'); 
}); 
0
<script type="text/javascript"> 
abc(val){ 
    if (val.value=="0"){ 
     document.getElementByID("").disabled= true; 
     document.getElementByID("").disabled= true; 
    }else{ 
     document.getElementByID("").disabled= false; 
     document.getElementByID("").disabled= false; 
    } 
    } 

</script> 

<select name="feature1" onchange="abc(this)"> 
    <option value="1">Enable</option> 
    <option value="0">Disable</option> 
</select> 

<input type="checkbox" name="feature2" id="feature2" /> 
<input type="checkbox" name="feature3" id="feature3" /> 
+0

извините, я не видел TAG jquery, но я не удаляю ответ для записи. – Salil