我一直在尝试使用jQuery代码在选择所有html选择下拉列表时启用按钮,或者如果没有选择单个选项则尝试禁用按钮。
这是我到目前为止所尝试的,但我的代码无法正常工作。有什么建议吗?
$(function() {
$('.picker').on('change', function() {
var SelectList = $('.picker');
//Here i'll find how many dropdown are present
for (var i = 0; i < SelectList.length; i++) {
//Here i need to check each dropdown value whether it selected or not
if (SelectList[i].val() != "") {
//If all dropdown is selected then Enable button
$("#Testing").attr("disabled", true);
} else {
//Disable button if any dropdown is not selected
$("#Testing").attr("disabled", false);
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
<select class="picker">
<option value="">Select</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</div>
<div>
<select class="picker">
<option value="">Select</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</div>
<div>
<select class="picker">
<option value="">Select</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</div>
<div>
<select class="picker">
<option value="">Select</option>
<option value="button-a">A</option>
<option value="button-b">B</option>
<option value="button-c">C</option>
</select>
</div>
<div>
<select class="picker">
<option value="">Select</option>
<option value="button-a">A</option>
<option value="button-b">B</option>
<option value="button-c">C</option>
</select>
</div>
<div>
<input id="Testing" type="button" class="btn btn-info" value="Testing" />
</div>
答案 0 :(得分:4)
无需循环 - 我也会触发更改onload以在(重新)加载时禁用:
$(function() {
$('.picker').on('change', function() {
var $sels = $('.picker option:selected[value=""]');
$("#Testing").attr("disabled", $sels.length > 0);
}).change();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div>
<select class="picker">
<option value="">Select</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</div>
<div>
<select class="picker">
<option value="">Select</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</div>
<div>
<select class="picker">
<option value="">Select</option>
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</select>
</div>
<div>
<select class="picker">
<option value="">Select</option>
<option value="button-a">A</option>
<option value="button-b">B</option>
<option value="button-c">C</option>
</select>
</div>
<div>
<select class="picker">
<option value="">Select</option>
<option value="button-a">A</option>
<option value="button-b">B</option>
<option value="button-c">C</option>
</select>
</div>
<div>
<input id="Testing" type="button" class="btn btn-info" value="Testing" />
</div>
答案 1 :(得分:0)
使用下面的代码 SelectList [i] .value 而不是 SelectList [i] .val()
$(function () {
$('.picker').on('change', function () {
var SelectList = $('.picker');
//Here i'll find how many dropdown are present
for (var i = 0; i < SelectList.length ; i++) {
//Here i need to check each dropdown value whether it selected or not
if (SelectList[i].value != "") {
//If all dropdown is selected then Enable button
$("#Testing").attr("disabled", true);
}
else {
//Disable button if any dropdown is not selected
$("#Testing").attr("disabled", false);
}
}
});
});