jQuery验证插件默认行为

jQuery验证插件默认行为,jquery,jquery-validate,Jquery,Jquery Validate,在使用jQuery验证插件时,我试图保留默认的错误消息位置和行为。当我设置validate()对象的任何属性时,默认行为似乎会改变 比如说。如果我只是用必需的属性装饰html输入,结果如下: HTML属性: <input id="name" type="text" required/> 那么,是什么给了我们。为什么所有的格式和位置都会改变。我能让它恢复默认行为的最简单方法是什么?当您第一次创建验证对象时,将其保存在变量中,然后使用它触发验证 var validator = $("[

在使用jQuery验证插件时,我试图保留默认的错误消息位置和行为。当我设置validate()对象的任何属性时,默认行为似乎会改变

比如说。如果我只是用必需的属性装饰html输入,结果如下:

HTML属性:

<input id="name" type="text" required/>

那么,是什么给了我们。为什么所有的格式和位置都会改变。我能让它恢复默认行为的最简单方法是什么?

当您第一次创建验证对象时,将其保存在变量中,然后使用它触发验证

var validator = $("[id$='emailForm']").validate({
    debug: true,
    rules: {
        txtEmail: {
            required: true,
            email: true
        }
    }
});

// Trigger validation at later point by invoking the valid method instead of validate
var isValid = validator.valid();
您的代码:

<input id="name" type="text" required/>

required
是HTML5验证属性。你在第一张图片中看到的只是兼容HTML5的浏览器在做什么。。。它与插件无关。在调用
.validate()
方法对其进行初始化之前,插件不会执行任何操作

调用
.validate()
方法后,您将初始化jQuery验证插件,然后它将接管。第二张图片是插件的默认行为

插件的默认外观演示:



有关如何在使用jQuery验证插件时获得所需的“外观”,请参见以下问题/答案:

您没有显示足够的代码来解释图片。单靠jQuery代码无法实现您所展示的功能,这是真正的默认行为=>我可以添加确切的HTML属性,但除了我输入的之外,没有其他代码。这就是jQueryValidate开箱即用的工作方式。您认为jQueryValidate插件的默认行为不是这样的。第一张图片是兼容HTML5的浏览器提供的默认HTML5验证。你的第二张图片是jQuery验证插件的默认行为。显示我对HTML5还不够了解。谢谢。有关如何在使用jQuery验证插件时获得所需外观的问题/答案,请参阅此问题/答案:这将保留默认的验证行为?是的。但这取决于你默认的意思。如果您仅依赖html“required”属性,则不需要验证程序插件。我不确定您的应用程序必须支持哪些浏览器,但您不能依靠必需的属性在旧浏览器中正常工作。每次调用validate方法都会在元素上重新应用默认验证。关键是调用validate一次,然后使用它返回的validator对象并调用“valid()”方法,该方法将返回一个布尔值。
<input id="name" type="text" required/>