我正在使用jquery Form Wizard,并希望编写自定义验证规则。
我当前的问题是我想将字段验证为URL,但如果用户忘记添加“http://”前缀,我不想拒绝这一点,而是在上面添加前缀服务器端。
我目前正在使用url
类进行此验证,但不支持此选项。要解决这个问题,我想使用自定义正则表达式而不是url
验证程序(基本上,只需检查URL字段是否有句点,且长度至少为五个字符)。
我无法让jquery-ui-form-wizard使用正则表达式或调用回调函数来验证。注意 - 我想验证每一步,而不仅仅是提交。
我将以下内容添加到表单向导选项中,并调用了我的回调函数 - 但即使它返回false,单击“下一步”仍会继续执行下一页:
remoteAjax: {
"page1" : {
url: "./validateWizard1",
dataType: "json",
beforeSend: function() {
// This code is called before "page1" is turned.
return false;
},
success: handleValidateSubmit
}
}
我想要设置自定义错误消息(以标准方式显示到验证插件),或重用URL消息。
实现这一目标的最佳方式是什么?
答案 0 :(得分:0)
以下是jquery-form-wizard的作者Jan Sundman的答案(他让我代替他发布):
如果我理解你的问题,你想做的 在请求发送到之前,在beforeSend方法中进行验证 服务器使用remoteAjax?
如果我理解正确,您正在使用验证插件 验证输入,但网址规则不支持您的需求?如果是这样, 您可以使用添加新方法 http://docs.jquery.com/Plugins/Validation/Validator/addMethod 你可以使用正则表达式和你喜欢的任何东西。
那就是说,似乎向导中的beforeSend方法没有 即使你返回false,也切断了ajax调用。这是一个错误,我 将在即将发布的版本中做出注释以便修复它。
要解决此问题,请尝试使用beforeSubmit回调 (由表单插件提供)。例如:
remoteAjax: {
"page1" : {
url: "./validateWizard1",
dataType: "json",
beforeSubmit: function() {
// This code is called before "page1" is turned.
return false;
},
success: handleValidateSubmit
}
}
我希望这会有所帮助。