我有一个表单设置,允许用户注册我们的移动网站。它使用jQuery验证插件进行基本的javascript验证。但是,我们的表单提交脚本也会执行验证。因此,如果发现错误,服务器会将HTTP重定向发送回带有$_GET
个数据的错误页面。
加载表单页面时,$_GET
数组中发现的任何错误都会输出到<div class="error">
中的相应字段。这很有效。
由于jQuery validator和我们的PHP脚本都执行相同的验证,因此它们应该将错误输出到同一个div.error
字段。一旦字段被验证,这也会(理论上)摆脱错误消息。
但是,如果我在jQuery验证器中更改errorElement: "div"
,由于某种原因甚至没有提到错误。将其更改回em
,label
或p
即可解决问题。但是,如果我们将初始元素更改为其中任何元素,它会再次中断。
它必须是jQuery验证脚本内置的功能,除非由验证器创建,否则它不会向已存在的元素输出错误。我怎么能绕过这个?
这是一个演示问题的小提琴,将errorElement: "div"
更改为任何类型的元素,它将起作用。
答案 0 :(得分:1)
覆盖errorPlacement
代替errorElement
处理程序,例如:
errorPlacement: function(error, element) {
element.next(".error").html(error);
},