如果至少有一个选择选项,则启用按钮
我有一个包含3个选择元素的表单。默认情况下,每个选项都具有选项“na”,并且提交按钮被禁用。我需要启用该按钮时,这三个选择中的至少一个具有任何其他选项,但“NA”如果至少有一个选择选项,则启用按钮
我试图写一个函数,这样我可以检查在网页加载选项,以及:
JS
function myFunction() {
bt = $(".b");
bt.attr("disabled", false).removeClass("disabledB");
if ($(".mySelect").val(":not(na)").length > 0) {
bt.attr("disabled", true).addClass("disabledB");
return false;
}
}
HTML
<table>
<tr>
<td>
<select class="mySelect">
<option value="na"></option>
<option value="1">value 1</option>
<option value="2">value 2</option>
</select>
<select class="mySelect">
<option value="na"></option>
<option value="3">value 3</option>
<option value="4">value 4</option>
</select>
</td>
</tr>
<tr>
<td>
<input type="button" class="b" value="click me">
</td>
</tr>
</table>
不知道我是什么做错了。
RepWhoringPeeHaa是正确的。将字符串传递到$().val()
意味着您正在尝试设置值。 $().val()
不能带选择器。我想你想要做的是使用
$('.mySelect option[value!=na]:selected').length == 0
代替
$(".mySelect").val(":not(na)").length > 0
这是不正确的,因为正在寻找匹配元素'> 0'而不是'== 0'。呃,好吧。 – iambriansreed 2012-03-31 00:33:00
这可能有助于
$("select").change(function() {
if ($("option:selected").not("option[value=na]"){
$("input[type=button]").removeAttr("disabled");
}
});
以下是参考几篇文章
http://api.jquery.com/selected-selector/
http://docs.jquery.com/Frequently_Asked_Questions#How_do_I_disable.2Fenable_a_form_element.3F
也许与if ($(".mySelect").filter(function() { return $(this).val() !== "na"; }).length > 0)
更改替换if ($(".mySelect").val(":not(na)").length > 0)
:
if ($(".mySelect").val(":not(na)").length > 0) {
bt.attr("disabled", true).addClass("disabledB");
return false;
}
要:
if ($(".mySelect option[value!='na']:selected").size() > 0) {
bt.attr("disabled", true).addClass("disabledB");
return false;
}
什么'如果($( “mySelect。 ”)VAL(“:不是(NA)。”)长度> 0 ){'你不是在这里设定价值吗? – PeeHaa 2012-03-30 23:36:26