Ho un modulo jQuery complicato e voglio disabilitare diversi elementi del modulo se una determinata casella è selezionata. Sto usando jQuery 1.3.2 e tutti i plugin rilevanti. Cosa sto facendo di sbagliato qui? Grazie, DakotajQuery disattiva elemento modulo quando la casella è selezionata
Ecco il mio HTML:
<li id="form-item-15" class="form-item">
<div class='element-container'>
<select id="house_year_built" name="house_year_built" class="form-select" >
...Bunch of options...
</select>
<input type="text" title="Original Purchase Price" id="house_purchase_price" name="house_purchase_price" class="form-text money" />
<input type="text" title="Current Home Debt" id="house_current_debt" name="house_current_debt" class="form-text money" />
</div>
<span class="element-toggle">
<input type="checkbox" id="house_toggle" />
<span>Do not own house</span>
</span>
</li>
Ecco il mio jQuery:
$('.element-toggle input').change(function() {
if ($(this).is(':checked')) $(this).parents('div.element-container').children('input,select').attr('disabled', true);
else $(this).parents('div.element-container').children('input,select').removeAttr('disabled'); });
Ancora non funziona, ma sembra che dovrebbe. È possibile che bind() sia più flauto che onchange, anche se meno compatibile. Continuerò a giocare. Hmm. – Dakota
Alla fine ho eliminato la classe contenitore-elemento poiché non si comportava da me e si comportava con: $ ('. Elemento -attribuzione input'). Bind ('click', function() { var inputs = $ (questo) .closest ('li.form-item'). find ('input, select'); if ($ (this) .attr ('checked')) inputs.attr ('disabled', true); else inputs.removeAttr ('disabled'); $ (this) .removeAttr ('disabled'); }); Grazie ancora, D – Dakota