Poszukuję wtyczki jQuery, która to robi.jQuery - wyłącz pole wejściowe na podstawie innej wybranej wartości pola
na przykład:
<label><input type="checkbox" depends_on="foo=5" name="boo" ... /> Check </label>
<select name="foo" ... >
<option value="5" selected="selected">5</option>
<option value="15">15</option>
<option value="25">25</option>
</select>
więc pole będzie włączony tylko wtedy, gdy opcja „5” jest wybrany poniżej.
lub
<select name="foo" depends_on="boo" ... >
<option value="5" selected="selected">5</option>
<option value="15">15</option>
<option value="25">25</option>
</select>
<label><input type="checkbox" name="boo" ... /> Check </label>
W takim przypadku wybierz powinien tylko jeśli włączona jest zaznaczone "boo".
udało mi się wymyślić kodu, który robi coś takiego:
$("*[depends_on]").each(function(){
var source = $(this);
var dep = $(this).attr('depends_on');
var target = dep.split("=");
$("*[name='"+target[0]+"']:not(:hidden)").change(function(){
if($(this).attr('checked')) {
source.removeClass('disabled');
source.removeAttr('disabled');
}
else{
source.attr('disabled', 'disabled');
source.addClass('disabled');
}
}).change();
});
wydaje się działać ok wybiera, które zależą od radia, ale chcę, aby zaimplementować to dla każdego typu wejścia lub kombinacji (lub przynajmniej większość z nich), bez konieczności pisania oddzielnego kodu dla każdego rodzaju danych wejściowych.
czy ktoś jest świadomy takiej wtyczki? a może masz sugestie do mojego kodu powyżej? :)
dziękuję. wykonałeś niesamowitą robotę! Jedynym problemem jest to, że input.dependsOn (radio = value) nie działa. – Alex
Zajmie się tym :) – balupton
Naprawiono: http: // jsfiddle.net/264Yd/7/ – balupton