我正在使用validationEngine脚本来验证表单。我用它来启动它:
$("#formid").validationEngine();
我并不是真的通过提交按钮提交表单。我使用带有onclick
事件的锚元素调用saveElement()
函数。在这个函数中我打电话:
$("#formid").validationEngine('validate');
效果很好。
在此之后,我将字段(例如,输入字段的内容重置为""
)重置,所需的字段开始显示错误。
为了防止发生这些错误,我想从表单元素中删除validationEngine。但我无法删除它。我尝试了各种选项,包括下面的选项,但都没有。
$('#formid').validationEngine('hideAll'); // To hide the error messages
$('#formid').validationEngine('detach'); // To remove the validationEngine
有没有人建议我如何删除validationEngine?
解决方法
它确实没有任何解绑方法。我在github项目中添加了一个问题。也许他们会实现一个解绑方法: https://github.com/posabsolute/jQuery-Validation-Engine/issues/287
作为一种解决方法,我想出了以下解决方案: 你可以:
仍然开放
也许有更好的解决方案或解决方法。如果你知道,请告诉我。
答案 0 :(得分:2)
这个问题仍然没有解决。我需要在现有应用程序中禁用验证,以允许在不验证表单的情况下进行回发事件。我通过使用如下正则表达式删除验证类来成功完成此操作:
// Work around
$('[class*="validate"]').each(function () {
var _this = $(this);
_this.attr("class", _this.attr("class").replace(/validate\[.*]+\s?/, ""));
});
答案 1 :(得分:1)
我认为你真的是过度工程。这可能不是您预期的答案,但我认为您应该这样做:
首先,在要提交的锚元素上,执行以下操作:
$('#anchorElement').click(function() {
$('#formid').submit()
})
然后,您可以这样做以在提交后删除表单:
$('#formid').submit(function() {
// Do your submitting stuff, like validating.
$(this).remove()
// Or use $(this).hide() if you simply want to hide it.
})
但我不提倡使用锚元素的方法。对于几乎每个网站来说,几乎都是必须降级。
问题是,当您的用户未启用JavaScript时,您的表单将永远不会被提交。
顺便说一句,看起来没有“unbinding”的validationengine。请参阅此处获取解决方案:Remove JQuery validationEngine from form