Javascript 我如何检查我的div标记字段是否为null,以及它是否为null,并使用Jquery执行某些操作

Javascript 我如何检查我的div标记字段是否为null,以及它是否为null,并使用Jquery执行某些操作,javascript,jquery,Javascript,Jquery,我有5个相同类别的div标记。每个div标记都有一个文本框和一个带有数字的下拉列表 如何检查所有这些divtags的文本框和下拉列表是否为空,以及是否为“do something” $step是一个包含所有mydiv标记的数组 var $step = $(".wizard-step2:visible"); 我的文本框有一个class注释,我的下拉列表有一个class等级 到目前为止,我已经对其进行了编码,但它是错误的,我不希望它检查每个div标记,我希望它检查所有标记 这是错误的代码: var

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

如何检查所有这些
div
tags的文本框和下拉列表是否为空,以及是否为“do something”

$step
是一个包含所有my
div
标记的数组

var $step = $(".wizard-step2:visible");
我的文本框有一个class
注释
,我的下拉列表有一个class
等级

到目前为止,我已经对其进行了编码,但它是错误的,我不希望它检查每个
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");
    }
}
var Comment=$step.find(“.Comment”).val();
var Grade=$step.find(“.Grade”).val();
对于(变量i=0;i<$step.length;i++){
如果(注释!=null&&Grade>0){{
//这样做
}
}否则{
警报(“您必须同时输入两个字段”);
}
}
编辑:

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

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

我不想为每个div标记执行if语句,我想在所有div标记都有任何空字段或都是字段时执行if语句

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

$(".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");
    }
});
$(".wizard-step2:visible").each(function(count){
    var isCommentEmpty = $(this).find(".comment").val().length == 0;
    if(isCommentEmpty){
        alert('Comment on div ' + count + ' is empty!';
    }
});

试着把你的评论放在每一篇文章里面,比如

    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

您可以像这样迭代集合或数组:

$(".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");
    }
});
$(".wizard-step2:visible").each(function(count){
    var isCommentEmpty = $(this).find(".comment").val().length == 0;
    if(isCommentEmpty){
        alert('Comment on div ' + count + ' is empty!';
    }
});

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

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
}

您应该使用jQuery
each()
方法来迭代
$(“.wizard-step2:visible”)
div数组

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

编辑:

这里是JSFIDLE代码的jist:-

$('.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);
    } 
});


你也可以发布你的HTMLI推荐使用JSFIDLE,它使任何人都更容易处理你的问题这很难做到,因为这只是我拥有的jquery代码墙的一部分:/so-10全部填充-做点什么,10全部清空,做点别的-中间-什么都不做?例如!这就是我想要达到的目标!:)但并非全部为空如果只有一个字段为空且9已填充,则应执行其他操作+1,此外,为了安全起见,我还将指定元素标记,以防类稍后被分配给div中的其他控件,这些控件可能需要或不需要包含在验证中。类似这样的东西:
$(this).find(“input[type='text'].Comment”).val()
$(this).find(“select.Grade”).val()(不确定语法是否正确)是的,除非您对这些事情有把握,否则您应该始终保持安全,并使选择器尽可能具体。我的代码执行您的操作。请阅读我的问题编辑。我想我解释得很糟糕。我希望你现在看完后能理解我的问题。谢谢答案中可能还应该包含相关的JavaScript实现,以防将来某个阶段链接失效。请阅读我的问题编辑。我想我解释得很糟糕。我希望你现在看完后能理解我的问题。谢谢我的代码和你的一样。请阅读我的问题编辑。我想我解释得很糟糕。我希望你现在看完后能理解我的问题。谢谢我的代码和你的一样。请阅读我的问题编辑。我想我解释得很糟糕。我希望你现在看完后能理解我的问题。谢谢我的代码和你的一样。请阅读我的问题编辑。我想我解释得很糟糕。我希望你现在看完后能理解我的问题。谢谢当我说5时,如果这只是一个示例,div标记的数量可以在1-20之间,这完全取决于用户选择的内容。@RammtinAvar修改为基于div的(可变)数量进行测试。是否可以对:hidden和:visible都这样做?因为当div标记1可见时,其余的都隐藏了,以此类推..我的代码执行你的操作。请阅读我的问题编辑。我想我解释得很糟糕。我希望你现在看完后能理解我的问题。谢谢