如何在 remote_form_for 提交之前引入验证?
我有一个名为 validateForm()的javascript函数。我可以在AJAX请求过程之前调用它。我尝试使用 return false 和 event.preventDefault 。但似乎没有效果。这是我的代码看起来像
<% remote_form_for :customer, :update =>"uxScreenLoaderDiv", :url => {:action => "login", :controller => "site"}, :onsubmit => "validateForm(event)" do |f| %>
User name : <%= f.text_field "uxUserName", :class => "TextBox", :style => "width:100px;" %> *
Password : <%= f.password_field "uxPassword", :class => "TextBox", :style => "width:100px;" %> *
<%= f.submit "Go!", :class => "Button-Simple", :id => "uxSubmitButton" %>
<% end %>
javascript函数简单如下
function validateForm(event){
return false;
//event.preventDefault();
}
答案 0 :(得分:2)
试试这个
<% remote_form_for :customer, :update =>"uxScreenLoaderDiv", :url => {:action => "login", :controller => "site"}, :html => {:id => "uxLoginForm"}, :onsubmit => "return validateForm(event)" do |f| %>
即。改变
:onsubmit => "validateForm(event)
到
:onsubmit => "return validateForm(event)
编辑它应该是
<% remote_form_for :customer, :update =>"uxScreenLoaderDiv",
:url => {:action => "login", :controller => "site"},
:html => {:id => "uxLoginForm", :onsubmit => "return validateForm(event)"}
do |f|
%>
再次编辑
你为什么不使用:条件呢?类似于以下内容
<% remote_form_for :customer, :update =>"uxScreenLoaderDiv",
:url => {:action => "login", :controller => "site"},
:html => {:id => "uxLoginForm"},
:condition=>"validateForm(event)!=false"
do |f|
%>
答案 1 :(得分:1)
我认为你正在寻找的东西就像是onSubmit =“return validateForm(this)”或者左右。然后,如果验证返回false(因为验证失败),表单不应该提交。
答案 2 :(得分:1)
您可能需要检查LIvevalidation插件(http://github.com/augustl/live-validations),您可以使用活动记录验证来执行Ajax
并且总是很好的非ajax验证(即使你使用ajax验证)因为ajax将无法在javascript禁用浏览器中工作
欢呼声, sameera