我的客户要求我使用特定的验证插件(valid8),它似乎只对焦点进行内联验证。关于插件的文档相当薄弱,所以我希望其他人有使用这个特定插件的经验,他们可以帮助我。
它是一种联系表单,用户必须指定其首选联系方式。如果他们指定了电子邮件,则必须验证电子邮件输入字段;如果他们指定电话,则必须验证电话输入字段。我可以根据所选的无线电选择性地添加验证,但如果用户在提交表单之前更改了他们的联系首选项,我就无法进行验证。
有没有办法在使用此插件添加后从字段中删除valid8验证?我试过.unbind(valid8),但这不起作用,因为unbind用于事件,而valid8不是一个事件。我是否必须手动取消绑定所有事件并从字段中删除额外的标记?
答案 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; }
}]
});