【问题标题】:Forcing jQuery validator to validate a single element强制 jQuery 验证器验证单个元素
【发布时间】:2015-04-09 15:14:23
【问题描述】:

在编辑页面上,我使用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>

【问题讨论】:

    标签: javascript jquery jquery-validate x-editable


    【解决方案1】:

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

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

    http://jqueryvalidation.org/valid/


    仅供参考

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

    【讨论】:

    • 感谢 Sparky,不确定这将如何工作。请参阅jsfiddle.net/he9Lnz3m/1。谢谢
    • @user1032531,该 jsFiddle 中有很多问题。 1) 没有&lt;form&gt; 2) 您无法验证&lt;a&gt; 元素。 3) 你从来没有在任何地方调用过.validate() 方法。
    • 谢谢 Sparky。 &lt;form&gt; 确实存在,但仅在初始页面加载后才存在。请注意尝试验证 &lt;a&gt; 元素,仅验证 &lt;input&gt;。确实调用了.validate() 方法,但仅在回调中。请参阅stackoverflow.com/questions/29569394/…。编辑。看到你刚刚回复了那个帖子。谢谢!马上回来!
    • 不知道为什么我添加了关于立即返回的简介... &lt;a&gt; 被动态创建的 &lt;form&gt; 替换,其中包含 &lt;input&gt;。我确实调用了.validate() 方法,但只是在回调中。感谢您的帮助。
    • 原来我的问题是表单没有附加到正文中。无法隐藏,但可以在页面上设置样式。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    相关资源
    最近更新 更多