0

我在每个必填字段的输入字段中显示 jQuery 验证错误消息。当用户尝试输入有效的必需信息时,我无法弄清楚如何使消息消失。

例如,如果输入字段中出现错误消息“输入您的名字”,并且我尝试在文本输入字段中输入我的真实名字(如果是史蒂夫),则它从“输入您的史蒂夫”开始

当我输入真实信息时,如何让错误消息消失?

这是jsfiddle

这是我的代码:

HTML

<form id="lead">
<input type="text" name="first_name">
<input type="text" name="last_name">
<input type="email" name="email">
<input type="submit">

jQuery

    $(function () {
    //Validation
    $('#lead').validate({
        rules: {
            first_name: {
                minlength: 2,
                required: true
            },
            last_name: {
                minlength: 2,
                required: true
            },
            email: {
                email: true,
                required: true
            }
        },
        errorPlacement: function (error, element) {
            element.val(error.text());
        },
        messages: {
            first_name: "Enter your first name",
            last_name: "Enter your last name",
            email: "Enter your email"
        },
        submitHandler: function (form) { // for demo
            alert('valid form submitted'); // for demo
            return false; // for demo
        }
    });

});
4

2 回答 2

0

为什么不使用占位符

他们应该很好地满足您的目的

于 2013-10-01T20:07:27.353 回答
0

我认为您无法通过 jQuery Validate 中的这些确切设置获得所需的行为。

问题是你已经minlength: 2为你的名字输入设置了。在您提交表单之前,Validate 什么都不做。但是在第一次提交并触发错误之后,它会重新评估每次击键时的验证标准。因此,您在名字输入中键入“S”,这会触发验证,但由于 minlength < 2 而失败。因此会触发将元素的值替换为错误消息。

您可能更愿意为 jQuery Validate 设置顶级选项onkeyup:false,但这并不能完全解决问题。

在这里看到它的工作方式不同:http: //jsfiddle.net/ryleyb/3RBRp/8/

于 2013-10-01T23:07:25.660 回答