1

我有 5 个div具有相同类别的标签。每个div标签都有一个文本框和一个带有数字的下拉列表。

如何检查所有这些div标签的文本框和下拉列表是否为空以及是否“做某事”。

$stepdiv是一个包含我所有标签的数组。

var $step = $(".wizard-step2:visible");

我的 Textbox 有一个类Comment,我的 Dropdownlist 有一个类Grade

到目前为止我已经对此进行了编码,但它是错误的,我不希望它检查每个div标签,我希望它检查所有标签。

这是错误的代码:

var Comment = $step.find(".Comment").val();
var Grade = $step.find(".Grade").val();

for (var i = 0; i < $step.length; i++) {
    if (Comment != null && Grade > 0) { {
        // do this
    }
    } else {
        alert("You must enter both fields");
    }
}

编辑:

我认为我没有很好地解释我的问题,我的代码就像我在这个问题上得到的所有答案一样工作。我不想用这个 if 语句来检查每个 div 标签。我希望能够检查所有的 div 标签是否有任何空字段做某事“如果所有的 div 标签字段都填满了做某事。

允许用户将字段留空,但如果所有 div 标签字段都已填充,则执行某些操作。

我不想为每个 div 标签做一个 if 语句,如果所有 div 标签都有任何空字段或者如果都是字段,我想做一个 if 语句。

假设我有 5 个 div 标签。我已经填写了其中的 4 个,当我填写最后一个时,5 个 div 标签被填写。在这里我想要这个“做点什么”,否则什么都不应该发生。我不希望在填充的 div 标签 1、2、3、4 上执行 if 语句

4

5 回答 5

1

像这样的东西:

$(".wizard-step2:visible").each(function(){
    var Comment = $(this).find(".Comment").val();
    var Grade = $(this).find(".Grade").val();

    if (Comment != '' && Grade > 0) {
    {
        // do this
    } else {
        alert("You must enter both fields");
    }
});
于 2012-05-04T10:38:01.173 回答
1

找到每个类的填充元素,并使用结果选择的长度来执行测试:

var $step = $(".wizard-step2:visible");

// returns true if the element's value is not null
function filled() {
    return !!this.value;
}

// count the number of non-empty elements
var n_step     = $step.length; 
var n_comments = $step.find('.Comment').filter(filled).length;
var n_grades   = $step.find('.Grade'  ).filter(filled).length;

if (n_comments === n_step && n_grades === n_step) {
     // all filled
} else if (n_comments === 0 && n_grades === 0) {
     // all empty
} else {
     // mixed - do nothing
}
于 2012-05-04T10:49:24.457 回答
0

尝试在每个内容中发表您的评论,例如

    var bOK, Comment, Grade ;
        $step.each(function(){
        Comment = $(this).find(".Comment").val();
        Grade = $(this).find(".Grade").val();
if(put your condition here)
else {
bOK = false;
return false
}
        });
// Now test your condition with bOK
于 2012-05-04T10:38:13.987 回答
0

您可以像这样遍历集合或数组:

$(".wizard-step2:visible").each(function(count){
    var isCommentEmpty = $(this).find(".comment").val().length == 0;
    if(isCommentEmpty){
        alert('Comment on div ' + count + ' is empty!';
    }
});
于 2012-05-04T10:39:39.433 回答
0

您应该使用 jQueryeach()方法来遍历您$(".wizard-step2:visible")的 div 数组。

看看我创建的这个jsFiddle,以展示如何实现这一点

编辑 :

这是此处 jsFiddle 代码的要点:-

$('.wizard-step2:visible').each(function(){

    var txtBox = $(this).find('.comment');
    var Select = $(this).find('.Grade');
    var thisDiv = $(this).attr('id');

    if(txtBox.val().length > 0 && Select.val().length > 0)
    {
        alert("values for " +thisDiv+ " are fine");
    }
    else
    {
        alert("please fill in both values for " + thisDiv);
    } 
});
于 2012-05-04T10:51:39.797 回答