1

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

这是一个联系表格,用户必须在其中指定他们首选的联系方式。如果他们指定电子邮件,则必须验证电子邮件输入字段;如果他们指定电话,则必须验证电话输入字段。我可以根据选择的收音机有选择地添加验证,但如果用户在提交表单之前更改了他们的联系偏好,我无法删除验证。

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

编辑:http: //jsfiddle.net/sjc8611/5d3CT/

4

2 回答 2

1

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

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

看看它做了什么。但它可能会产生错误,如果出现错误,您还可以删除与之关联的事件,这些事件是:

keyup
blur
click (for checkbox)

你可以用这样的一个命令来做到这一点:

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

但这将删除该元素的所有事件,并且可能再次导致问题,这就是我提供上面列表的原因,以便您可以在需要时一一删除它们。

这就是我在不使用它的情况下所能说的,如果它不起作用,你应该在网上发布一个示例(最好在jsFiddle上),以便我们查看它。如果一切都失败了,你可以给插件作者发电子邮件。

于 2012-10-11T22:27:18.437 回答
1

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

$("#element").valid8({
    jsFunctions: [{
        function: alwaysTrue, values: function() { return true; }
    }]
});
于 2012-10-11T22:50:18.010 回答