我有 7 个类名称为“dd”的下拉菜单。我有 7 个文本框,类名为“tt”。每个文本框对应于每个下拉列表。 现在,我必须检查
if(dropdown value is equal to 1)
text box can not be empty.
所以我正在做的就是:
function checkOpenHours() {
if ($('.dd').val() == 1 && $('.tt').val() == "") {
alert("Please select an opening hour.");
return false;
}
}
我正在调用这个函数
<asp:Button ID="btnSave" runat="server" Text="Update hour" Height="35px"
onclick="btnSave_Click" OnClientClick="return checkOpenHours()"/>
但问题是,这只适用于第一个下拉菜单和文本框。 它不适用于其他 6 个下拉菜单和文本框 ..!!
我做错了什么??有帮助吗?
最佳答案
.val()
方法返回 jQuery 对象中第一个元素的值。
你可以这样做:
function checkOpenHours() {
var $dd = $('.dd'),
$tt = $('.tt'),
i;
for (i = 0; i < $dd.length; i++) {
if ($dd.eq(i).val() == 1 && $tt.eq(i).val() == "") {
alert("Please select an opening hour.");
return false;
}
}
}
我在那里所做的是首先将 $('.dd')
和 $('.tt')
的结果放入变量中,因为虽然使用循环中的 $('.dd')
和 $('.tt')
可以工作但效率低下,因为它会重新创建它们(完成 DOM 访问)每次迭代。然后我使用 .eq()
method获取当前 i
索引处的元素。
我使用标准的 for
而不是 jQuery .each()
,因为它可以很容易地从外部函数返回。
关于javascript - 检查具有相同类名的多个元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11983978/