ajax表单提交前的验证
问题描述:
我如何在之前引入验证remote_form_for提交?ajax表单提交前的验证
我有一个JavaScript函数叫做validateForm()。我可以在AJAX请求过程之前调用它。我试图用返回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();
}
答
试试这个
<% 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)
EDITED应该
<% 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|
%>
答
你可能要检查LIvevalidation插件(http://github.com/augustl/live-validations)您可以在与活动记录验证
而且它总是好的非Ajax验证也(即使你做的Ajax这使用AJAX验证)如AJAX将不会在javascript禁用浏览器
欢呼工作, sameera
使用返回validateForm(事件)只使它成为一个常用的形式,并使表格与AJAX请求 – ZX12R 2010-05-21 07:32:30
行为请检查我的“再次编辑”,让我知道发生了什么。 – Salil 2010-05-21 07:44:27