ajax表单提交前的验证

ajax表单提交前的验证

问题描述:

我如何在之前引入验证remote_form_for提交?ajax表单提交前的验证

我有一个JavaScript函数叫做validateForm()。我可以在AJAX请求过程之前调用它。我试图用返回falseevent.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;" %>&nbsp;* 
    &nbsp;Password : <%= f.password_field "uxPassword", :class => "TextBox", :style => "width:100px;" %>&nbsp;* 
    <%= 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| 
%> 
+0

使用返回validateForm(事件)只使它成为一个常用的形式,并使表格与AJAX请求 – ZX12R 2010-05-21 07:32:30

+0

行为请检查我的“再次编辑”,让我知道发生了什么。 – Salil 2010-05-21 07:44:27

我想你要寻找的是类似的onsubmit =“返回validateForm(本)”或左右。然后,如果验证返回false(因为验证失败),表单不应提交。

+0

我尝试了前面。它有一个问题...如果返回值是真实的形式直接和我提交s不再是一个AJAX请求 – ZX12R 2010-05-21 07:20:27

+0

如果你只是想做一个纯粹的AJAX请求,一个提交按钮是不必要的。你可以使用简单的“按钮”类型输入,如 并使用onClick处理程序。 – edl 2010-05-21 07:24:06

你可能要检查LIvevalidation插件(http://github.com/augustl/live-validations)您可以在与活动记录验证

而且它总是好的非Ajax验证也(即使你做的Ajax这使用AJAX验证)如AJAX将不会在javascript禁用浏览器

欢呼工作, sameera

+0

谢谢。将检查出 – ZX12R 2010-05-21 09:31:02

+0

好的提示:我已经在使用jquery.validate插件;但不得不手动复制我的验证。 – nathanvda 2010-05-21 21:45:00