2010-05-21 6 views
2

Comment introduire la validation avant que remote_form_for soumette? J'ai la fonction javascript appelée validateForm(). Je suis capable de l'appeler avant le processus de demande AJAX. J'ai essayé d'utiliser return false et event.preventDefault. Mais il semble n'y avoir aucun effet. Voici ce que mon code ressemblevalidation avant la soumission du formulaire ajax

<% 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 %> 

la fonction javascript est simple comme suit

function validateForm(event){ 
    return false; 
    //event.preventDefault(); 
} 

Répondre

2

Essayez cette

<% remote_form_for :customer, :update =>"uxScreenLoaderDiv", :url => {:action => "login", :controller => "site"}, :html => {:id => "uxLoginForm"}, :onsubmit => "return validateForm(event)" do |f| %> 

à savoir changer

:onsubmit => "validateForm(event) 

à

:onsubmit => "return validateForm(event) 

ÉDITÉE il devrait être

<% remote_form_for :customer, :update =>"uxScreenLoaderDiv", 
     :url => {:action => "login", :controller => "site"}, 
     :html => {:id => "uxLoginForm", :onsubmit => "return validateForm(event)"} 
     do |f| 
%> 

EDITED AGAIN

Pourquoi n'utilisez-vous pas: condition pour cela? quelque chose comme suit

<% remote_form_for :customer, :update =>"uxScreenLoaderDiv", 
     :url => {:action => "login", :controller => "site"}, 
     :html => {:id => "uxLoginForm"}, 
     :condition=>"validateForm(event)!=false" 
     do |f| 
%> 
+0

en utilisant return validateForm (événement) ne fait qu'une forme habituelle et fait que le formulaire se comporte avec une requête ajax – ZX12R

+0

s'il vous plaît vérifier mon "EDITED AGAIN" et laissez-moi savoir ce qui se passe. – Salil

1

Je pense que ce que vous cherchez est quelque chose comme onSubmit = « return valideFormulaire (this) » ou à peu près . Ensuite, si la validation renvoie false (parce que la validation a échoué), le formulaire ne doit pas être envoyé.

+0

je l'ai essayé plus tôt .. il a un problème ... si la valeur de retour est vrai que la forme soumet directement et i s n'est plus une requête AJAX – ZX12R

+0

Si vous essayez simplement de faire une requête AJAX pure, un bouton de soumission n'est pas nécessaire. Vous pouvez simplement utiliser une entrée de type "bouton" simple comme et utiliser un gestionnaire onClick. – edl

1

Vous pouvez consulter le plugin LiveValidation (http://github.com/augustl/live-validations) que vous pouvez vous faire Ajax avec des validations de disques actifs

Et toujours bon d'avoir des validations non ajax aussi (même si vous utilisation ajax) validations qu'AJAX ne fonctionnent pas dans javascript navigateur désactiver

acclamations, sameera

+0

merci. vais le vérifier – ZX12R

+0

Bon conseil: j'utilise déjà le plugin jquery.validate pour cela; mais j'ai dû copier manuellement mes validations. – nathanvda

Questions connexes