强制 jQuery 验证器验证单个元素

use*_*531 3 javascript jquery jquery-validate x-editable

在编辑页面上,我使用http://jqueryvalidation.org/来验证表单。

//validate object set using external file linked to page
var myValidateObj = {
    "rules": {
        "foo": {"required": true,"maxlength": 45,"minlength": 2},
        "bar": {"maxlength": 45},
    },
    "messages": {
        "foo": {"required": "Foo is required.",},
        "bar": {"maxlength": "bla bla."},
    }
};

var validator=$("#myform").validate({
    rules: myValidateObj.rules,
    messages: myValidateObj.messages,
});

<form id="myForm">
    Foo: <input type="text" name="foo" />
    Bar: <input type="text" name="bar" />
    <input type="submit" value="SAVE">
</form>
Run Code Online (Sandbox Code Playgroud)

在另一个页面上,我正在显示前面描述的编辑页面的值,并允许使用http://vitalets.github.io/x-editable/进行内联编辑。验证规则和消息仍然适用,但现在只需要验证单个字段。假设myValidateObj此页面上存在该对象,是否可以使用它来验证单个字段?例如,在可编辑的验证回调中,如何在未通过验证时myValidateObj验证foo并返回适当的消息?

$('#foo').editable({
    type: 'text',
    validate: function(value) {
        //How do I use myValidateObj to validate foo and return applicable message???
    }
});

Name: <a href="javascript:void(0)" id="foo"><?php echo($foo); ?></a>
Bla: <a href="javascript:void(0)" id="bar"><?php echo($bar); ?></a>
Run Code Online (Sandbox Code Playgroud)

Spa*_*rky 6

.valid()方法可用于强制对单个元素进行即时验证测试。

$('#foo').valid();
Run Code Online (Sandbox Code Playgroud)

http://jqueryvalidation.org/valid/


仅供参考

.validate()方法用于初始化表单上的插件,不用于触发测试。因此,您仍然需要.validate()在 DOM ready 内调用一次,然后才能使用.valid().