Javascript jquery-检查特定输入的空值,并仅向那些空的输入添加类

Javascript jquery-检查特定输入的空值,并仅向那些空的输入添加类,javascript,jquery,Javascript,Jquery,我有一个表单,它有必需的输入字段,我用化成的类名指出了这一点。 我有一段这样的代码。如果我专注于所需的输入,然后按submit,输入将变为红色,如果为空(我想要)。但它一次只对一个有效,如果我专注于输入的话 我的代码如下: function checkIfEmpty(){ $('#register-form input.gv-form-required').blur(function(){ if( !$(this).val()){ $(this).

我有一个表单,它有必需的输入字段,我用化成的类名指出了这一点。 我有一段这样的代码。如果我专注于所需的输入,然后按submit,输入将变为红色,如果为空(我想要)。但它一次只对一个有效,如果我专注于输入的话

我的代码如下:

function checkIfEmpty(){
    $('#register-form input.gv-form-required').blur(function(){
        if( !$(this).val()){
            $(this).parent().parent().addClass("has-error");
            return false;
        }else{
            return true;
        }
    });
}
我几乎可以肯定,
blur()
方法不适合我的情况。
因此,请帮助一位男士。

将您的代码更改为以下内容:

function checkIfEmpty(){
   $('#register-form input.gv-form-required').each(function(){
       if( !$(this).is(':empty')){
           $(this).parent().parent().addClass("has-error");
       }else{
           $(this).parent().parent().removeClass("has-error");
       }
   });
}
试一试 在其他情况下

$(this).parent().parent().removeClass("has-error");
js代码
blur
事件在您的情况下确实不太合适。我要做的是,我会通过每个字段进行评分,并检查它是否已填写。如果是,则删除(如果有)
有错误
类。如果未填充,则为其指定
has error

function checkIfEmpty(){
    $('#register-form input.gv-form-required').each(function(){
        if($(this).val() === ""){
            $(this).parent().parent().addClass("has-error");
        }else{
            $(this).parent().parent().removeClass("has-error");
        }
    });
}

试试这个:您必须使用
.each()
检查表单中的每个输入,并将
removeClass
置于
else
状态

function checkIfEmpty(){
    var empty = false;
    $('#register-form input.gv-form-required').each(function(){
        if($(this).val().trim()==""){
            empty = true;
            $(this).parent().parent().addClass("has-error");
        }else{
            $(this).parent().parent().removeClass("has-error");
        }
    });
    return empty;
}

你能发布完整的代码吗?尝试
.filter()
而不是
.blur()
无需发布“完整”代码。就像我在上面清除的那样,当你按submit时,代码会被执行。太棒了!这里我考虑的是复杂的手动foreach循环:)不幸的是,这段代码将'.has error'应用于第一个找到的空字段,而不是所有找到的空字段。很抱歉,我让这个问题变得更复杂。这个返回true解决了“应用于所有”的问题,但是当使用返回false时,每个循环停止工作,并且只将removeClass应用于一个空的错误字段。这就像
return false
以某种方式逃逸。我认为我们不需要从每个循环返回任何东西,让我们删除它。但是我的代码检查
checkIfEmpty==false
并通过AJAX发送post请求。
function checkIfEmpty(){
    var empty = false;
    $('#register-form input.gv-form-required').each(function(){
        if($(this).val().trim()==""){
            empty = true;
            $(this).parent().parent().addClass("has-error");
        }else{
            $(this).parent().parent().removeClass("has-error");
        }
    });
    return empty;
}