【问题标题】:If using :remote=>true in form_for, jquery livevalidations shows error messages, But form get submitted如果在 form_for 中使用 :remote=>true,jquery livevalidations 会显示错误消息,但会提交表单
【发布时间】:2014-09-19 06:21:34
【问题描述】:
我正在为我的表单使用 jquery livevalidations,并为此表单使用 :remote => true。当我提交表单时,livevalidations 向我显示字段错误,然后表单也被提交。然后由于服务器端验证操作得到回滚。
如果我对任何形式使用 :remote => true,Livevalidations 都不起作用。
【问题讨论】:
标签:
jquery
ruby-on-rails
livevalidation
【解决方案1】:
从您的描述中可以清楚地看出您的表单验证工作正常。但是由于您的表单中有按钮提交,因此虽然验证失败,但它会被提交。
您需要从表单中删除提交按钮并使其成为简单的按钮。单击那个简单的按钮时,您需要验证字段,如果一切正常,则从您的 jquery 代码提交表单。如果您没有正确验证所有字段,则需要返回 false。
您还可以在 jquery 验证部分中使用 preventDefault() 函数来限制表单提交。
如果您不打算提供旧版本的浏览器,那么您可以简单地使用 html5 验证。您只需将require => true 放在您的视图中即可完成。