我目前在表單中有2個複選框類別,一個下拉列表和一個提交按鈕。按鈕應保持「禁用」狀態,直到選中一個類別A的複選框並選中一個類別B選項並選擇了選擇列表的選項。 它適用於複選框(當我沒有列表測試時),但列表有問題。 當我從上到下(func - > plat - > lang)填寫表單時,它不起作用。不知何故,當我先選擇「lang」然後選中複選框時,它會起作用。當我在選擇語言後檢查另一個複選框時,它也從上到下工作。這很奇怪。 因此,這裏的HTML:JQUERY檢查是否選擇了列表框選項,用作if循環中的條件
<h3>choose func</h3>
<input type="hidden" name="func1" value="" />
<input type="checkbox" name="func1" value="1" id="func1" /> func1 <br/>
<input type="hidden" name="func2" value="" />
<input type="checkbox" name="func2" value="1" id="func2" /> func2<br/>
<input type="hidden" name="func3" value="" />
<input type="checkbox" name="func3" value="1" id="func3"/> func3<br/>
<br/>
<h3>choose plat</h3>
<input type="hidden" name="plat1" value="" />
<input type="checkbox" name="plat1" value="1" id="plat1" /> plat1<br/>
<input type="hidden" name="plat2" value="" />
<input type="checkbox" name="plat2" value="1" id="plat2" /> plat2<br/>
<input type="hidden" name="plat3" value="" />
<input type="checkbox" name="plat3" value="1" id="plat3" /> plat3<br/>
<input type="hidden" name="plat4" value="" />
<input type="checkbox" name="plat4" value="1" id="plat4" /> plat4<br/>
<br/>
<h3>choose lang</h3>
<select name="sprache">
<option disabled selected> -- select an option -- </option>
<option name="deutsch" id="deutsch">Deutsch</option>
<option name="englisch" id="englisch">Englisch</option>
</select>
<br/><br/>
<script>
</script>
<input type="submit" name="abfrage" class="inputButton" id="idAbfragen" value="Abfragen" disabled="">
而jQuery的/ JS:
$(function() {
$("#func1, #func2, #func3, #plat1, #plat2, #plat3, #plat4, #deutsch, #englisch").change(function() {
if (($("#func1").is(':checked') || $("#func2").is(':checked') || $("#func3").is(':checked'))
&&
($("#plat1").is(':checked') || $("#plat2").is(':checked') || $("#plat3").is(':checked') || $("#plat4").is(':checked'))
&&
($("#deutsch").is(':selected') || $("#englisch").is(':selected')))
{
$('.inputButton').attr('disabled', false);
}
else
{
$('.inputButton').attr('disabled', true);
}
});
});
我不知道爲什麼它不工作。您可以在我設置的小提琴重現此問題:https://jsfiddle.net/3zqf4fxv/
我希望有一個修復。 感謝和問候!
變化'$(「#FUNC1,#FUNC2,#FUNC3,#plat1,#plat2,#plat3,#plat4,#deutsch,#englisch 「)'到'$(」:input「)'。 https://jsfiddle.net/j08691/3zqf4fxv/1/ – j08691
非常感謝!它可以正常工作,並且還可以節省一些打字費用 – bababow
您是否想要一個更具可擴展性的解決方案,以便您不將每個單獨的DOM元素傳遞到您的條件中? IE瀏覽器 - 例如,如果您有100個項目的列表,例如? –