Valid8 jquery插件:依赖字段验证?

时间:2012-10-11 21:49:45

标签: jquery

我的客户要求我使用特定的验证插件(valid8),它似乎只对焦点进行内联验证。关于插件的文档相当薄弱,所以我希望其他人有使用这个特定插件的经验,他们可以帮助我。

它是一种联系表单,用户必须指定其首选联系方式。如果他们指定了电子邮件,则必须验证电子邮件输入字段;如果他们指定电话,则必须验证电话输入字段。我可以根据所选的无线电选择性地添加验证,但如果用户在提交表单之前更改了他们的联系首选项,我就无法进行验证。

有没有办法在使用此插件添加后从字段中删除valid8验证?我试过.unbind(valid8),但这不起作用,因为unbind用于事件,而valid8不是一个事件。我是否必须手动取消绑定所有事件并从字段中删除额外的标记?

修改:http://jsfiddle.net/sjc8611/5d3CT/

2 个答案:

答案 0 :(得分:1)

我没有使用过这个插件,但是查看来源似乎有关#element验证的信息存储在任意数据settings中,因此您可以尝试:

$('#element').data('settings', null);

看看它的作用。它可能会产生错误,如果是,您还可以删除与之关联的事件,这些事件是:

keyup
blur
click (for checkbox)

只需一个命令即可完成:

$('#element').unbind();

但是这会删除该元素的所有事件并再次导致问题,这就是为什么我提供上面的列表,以便您可以根据需要逐个删除它们。

这是我可以说的,没有使用它,如果它不起作用你应该在线发布一个例子(最好在jsFiddle),所以我们可以看看它。如果所有其他方法都失败了,您可以通过电子邮件发送插件作者。

答案 1 :(得分:1)

您可以将验证设置为始终返回true的函数:

$("#element").valid8({
    jsFunctions: [{
        function: alwaysTrue, values: function() { return true; }
    }]
});