query,表单验证问题,谢谢各位帮忙

 //验证configmodel表单信息
$(function () {

    var checkok = false;
    var slen = $("#scode").val().length;

    $("#scode").blur(function () {
        var errmsg = "<p id=\"errscode\" style=\"color:red;\">此处不能小于4位!请重新填写。</p>";
        if (slen < 4) {
            $("#errscode").remove();
            $("#scodeerr").append(errmsg);
            checkok = false;
        } 
        if(slen > 4){
            $("#errscode").remove();
            checkok = true;
        }
    }); 

    $("#configsubmit").click(function () {
        if (checkok === true) {
            $("#configsubmit").click(function () {
                return true;
            });
        }else{
            return false;
        }
    });
});


<form id="">
<input id="scode" type="text">
<input type="submit" id="" value="ok">

</form>
<div id="scodeerr">?</div>

有错误信息可以附加上去,但是输入框值输对了也删除不了已经附加的信息。

     $("#scode").blur(function () {
        var slen = $("#scode").val().length;///////////////放里面来,要不slen永远为0【初始状态的值,得到的不是输入后的】,除非scode有值
        var errmsg = "<p id=\"errscode\" style=\"color:red;\">此处不能小于4位!请重新填写。</p>";
        if (slen < 4) {
            $("#errscode").remove();
            $("#scodeerr").append(errmsg);
            checkok = false;
        }
        if(slen > 4){
            $("#errscode").remove();
            checkok = true;
        }
    });

把错误信息的标签加隐藏属性,验证错误的时候显示出来,验证成功的时候隐藏信息

if(slen > 4){
$("#errscode").html("");
checkok = true;
}

var el = document.getElementById('errscode');
el.parentNode.removeChild(el);

slen是你这个值一直没变吧

可以打断点调试看看slen值变了没有,再看 $("#errscode")能不能获取到相关元素,能获取到,就可以直接remove()的

jQuery表单验证插件,你值得拥有

把var slen = $("#scode").val().length;这行放在 $("#scode").blur(function () {});方法里面,你的slen始终是0

 <script type="text/javascript">
            //验证configmodel表单信息
            $(function () {

                var checkok = false;
                var slen;

                $("#scode").blur(function () {
                    var errmsg = "<p id=\"errscode\" style=\"color:red;\">此处不能小于4位!请重新填写。</p>";
                    slen = $("#scode").val().length;
                    if (slen < 4) {
                        $("#errscode").remove();
                        $("#scodeerr").append(errmsg);
                        checkok = false;
                    } 
                    if(slen > 4){
                        $("#errscode").remove();
                        checkok = true;
                    }
                }); 

                $("#configsubmit").click(function () {
                    if (checkok === true) {
                        $("#configsubmit").click(function () {
                            return true;
                        });
                    }else{
                        return false;
                    }
                });
            });
        </script>



<form id="">
<input id="scode" type="text">
<input type="submit" id="" value="ok">

</form>
<div id="scodeerr">?</div>

var errmsg = $("

此处不能小于4位!请重新填写。

");
errmsg.detach();

把你的errmsg拼接的html转成jq对象,然后再进行删除,可以直接$('

')

或者提前将报错内容放在那里,用display:none;隐藏,用jq修改内容,需要时候显示,不需要隐藏就行了

//验证configmodel表单信息
$(function () {

var checkok = false;
var slen = $("#scode").val().length;

$("#scode").blur(function () {
      //第一次如果填写的slen不符合标准则附加错误信息,当改变输入框的值是,光标移动之后应先将之前的错误信息清空,如下
         $("#scodeerr").clear();
    var errmsg = "<p id=\"errscode\" style=\"color:red;\">此处不能小于4位!请重新填写。</p>";
            var slen = $("#scode").val().length;
    if (slen < 4) {
        $("#errscode").remove();
        $("#scodeerr").append(errmsg);
        checkok = false;
    } 
    if(slen > 4){
        $("#errscode").remove();
        checkok = true;
    }
}); 

$("#configsubmit").click(function () {
    if (checkok === true) {
        $("#configsubmit").click(function () {
            return true;
        });
    }else{
        return false;
    }
});

});

?