Ich habe eine komplizierte jQuery Form und ich möchte mehrere Formularelemente deaktivieren, wenn ein bestimmtes Kontrollkästchen aktiviert ist. Ich benutze jQuery 1.3.2 und alle relevanten Plugins. Was mache ich hier falsch? Danke, DakotajQuery deaktivieren Formularelement, wenn das Kontrollkästchen aktiviert ist
Hier ist mein 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>
Hier ist meine jQuery ist:
$('.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'); });
Immer noch nicht funktioniert, aber sieht aus wie es sollte. Ist es möglich, bind() ist flockiger als onchange, auch wenn weniger kompatibel. Ich werde weiterspielen. Hmm. – Dakota
Ich habe schließlich die Element-Container-Klasse eliminiert, da sie sich nicht für mich verhielt und ging mit: $ ('. Element-toggle input') bind ('click', function() { var inputs = $ (this) .closes ('li.form-item'). find ('input, select'); if ($ (this) .attr ('geprüft')) inputs.attr ('disabled', true); else inputs.removeAttr ('deaktiviert'); $ (this) .removeAttr ('disabled'); }); Danke nochmal, D – Dakota