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

Javascript 检查具有相同类名的多个元素的值,javascript,jquery,asp.net,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() == "") {

我有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个下拉列表和文本框

我做错了什么??有什么帮助吗?

方法从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;
        }
    }
}
函数checkOpenHours(){
变量$dd=$('.dd'),
$tt=$('.tt'),
我
对于(i=0;i<$dd.length;i++){
如果($dd.eq(i).val()==1&&$tt.eq(i).val()==“”){
警报(“请选择营业时间”);
返回false;
}
}
}
我在那里做的是首先将
$('.dd')
$('.tt')
的结果放入变量中,因为尽管在循环中使用
$('.dd')
$('.tt')
会起作用,但效率会很低,因为它会在每次迭代中重新创建它们(完成DOM访问)。然后,我使用获取当前
I
索引中的元素

我对使用标准的
,而不是jQuery
。each()
,因为它可以很容易地从外部函数返回。

val()
只返回jQuery集合中第一个元素的值

您可能应该为此使用
.each()

差不多

var allOkay = true;
$('.dd').each(function(id, item) {
    var $dropDown = $(item);
    var $textbox = $dropDown.siblings('.tt') // You'll need to change this according to your HTML!

    if ($dropDown.val() == 1 && $textbox.val() == '') {
        allOkay = false;
    }
});
if (!allOkay) {
    alert("Ze opening hourz! You did not enter zem!")
}

嗨..谢谢..很抱歉上次的评论。我已经删除了。问题是,即使我在文本框中输入文本,它仍会显示警报。。!!你有什么线索吗?在这里似乎对我很好:-如果你有进一步的问题,你需要显示更多的代码,也许在你自己的小提琴。。。