Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery自定义验证只显示最后一个字段的错误_Javascript_Jquery_Forms_Validation - Fatal编程技术网

Javascript jQuery自定义验证只显示最后一个字段的错误

Javascript jQuery自定义验证只显示最后一个字段的错误,javascript,jquery,forms,validation,Javascript,Jquery,Forms,Validation,我用Jquery编写了以下简单的验证代码,一切正常,但只显示最后一个字段的错误。 我已开始使用错误div放置此字段集: <fieldset data-check-id="1"> <div class="fs-error"></div> <input type="text" size="50" id="ptitle" name="title" /> <input type="text" id="address" name="p_address"

我用Jquery编写了以下简单的验证代码,一切正常,但只显示最后一个字段的错误。 我已开始使用错误div放置此字段集:

<fieldset data-check-id="1">
<div class="fs-error"></div>
<input type="text" size="50" id="ptitle" name="title" />
<input type="text" id="address" name="p_address">
</fieldset>

现在一切正常,但如果标题和地址都没有填写,则只显示地址错误(错误2)。如果我插入地址,标题输入将以红色边框突出显示,但其消息不会显示(错误1)。我做错了什么?提前感谢

当出现2个错误时,只显示第二个错误,因为您正在使用此行完全重写fs error div(删除之前的错误):


只有在没有错误的情况下才想隐藏它。

一种利用
HTML5
必需的
模式
属性的方法<代码>CSS
计数器
无效
有效
:not()
::在
之后,
内容
,通用同级选择器<代码>~

正文{
计数器复位:错误;
计数器复位:err2;
计数器增量:err2;
}
.fs错误{
显示:无;
}
输入:非(:无效){
边框底部:2倍实心rgb(0,102,0);
}
输入:无效{
底部边框:2倍纯红;
}
输入:无效~.fs错误{
显示:块;
位置:相对位置;
顶部:-70px;
颜色:红色;
}
输入:第n个类型(1):无效~input:valid~.fs错误::after{
计数器增量:err;
内容:“错误”计数器(err);
}
输入:第n个类型(1):有效~输入:第n个类型(2):无效~ fs错误::之后{
计数器增量:错误2;
内容:“错误”计数器(err);
}
输入:第n个类型(1):无效~输入:第n个类型(2):无效~ fs错误::after{
计数器增量:err;
内容:“错误”计数器(err)”,错误”计数器(err2);
}


一,
二,
“仅显示地址错误(错误2)”似乎正在覆盖
jQuery('.fs error').html('error 2')上的现有
html
?您也可以使用
html5
css
来满足需求。感谢您的大力帮助@Walk@XiLab没问题,这里有一个快速修复方法应该可以工作(注释行并将第二个“html()”更改为“append()”)。
function check($fs){
var ok = true;
switch($fs.attr('data-check-id')){
case '1':

$ptitle = $('#ptitle',$fs);
$address = $('#address',$fs);

//title
if ($ptitle.val().length == 0) {
ok=false;
jQuery( "#ptitle" ).css( "border-bottom", "2px solid red" );
jQuery('.fs-error').html('<span style="color:red;"> Error 1 </span>');
jQuery('.fs-error').show();
}
else{
jQuery( "#ptitle" ).css( "border-bottom", "2px solid rgb(0, 102, 0)" );
jQuery('.fs-error').hide();
}

//Address
if ($address.val().length == 0) {
ok=false;
jQuery( "#address" ).css( "border-bottom", "2px solid red" );
jQuery('.fs-error').html('<span style="color:red;"> Error 2 </span>');
jQuery('.fs-error').show();
}
else{
jQuery( "#address" ).css( "border-bottom", "2px solid rgb(0, 102, 0)" );
jQuery('.fs-error').hide();
}
break;
}

if(ok === true){
        $fs.attr('data-complete', true);
        return true;
    }
    else{
        $fs.attr('data-complete', false);
        return false;
    }
}
function form_completeCheck(){
  var ok = true;
  $('fieldset').each(function(index,elem){
    $this = $(this);
    if ($this.attr('data-complete') != 'true') {
      ok = false;
    };
  })

  if (ok === true) {
    //go go go..
    return true;
  }
  else{
    // stop
    return false;
  }

}
jQuery('.fs-error').html('<span style="color:red;"> Error 2 </span>');
jQuery('.fs-error').hide();