javascript - 检查具有相同类名的多个元素的值

标签 javascript jquery asp.net

我有 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/

相关文章:

java - jQuery 幻灯片淡入淡出内容

javascript - this.url 不是函数

javascript - 使用http拦截器时发送重复的http请求(在Ionic 2中)

javascript - React.js 从数组创建多个表

javascript - 当 HTML 元素滚动到 View 中时是否会触发 Javascript 事件?

javascript - Select2 通过 AJAX 加载 JSON 结果集并在本地搜索

javascript - 如何用html2canvas抓取div?

asp.net - FormView 不显示

asp.net - 将事件监听器分配给 ASP.NET 中动态创建的 HTML 按钮

c# - 如何找到通过 POST 方法向 asp.net 网页发送数据的网站的 IP 地址?