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

时间:2015-04-09 15:14:23

标签: 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>

在另一个页面上,我显示前面描述的编辑页面的值,并允许使用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>

1 个答案:

答案 0 :(得分:4)

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

$('#foo').valid();

http://jqueryvalidation.org/valid/


<强> FYI

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