2010-04-06 2 views
0

J'ai créé une vue dont je fais la validation côté serveur et côté client sur la page en utilisant les attributs DataAnnotation qui décorent chaque entrée du formulaire. La validation a lieu lorsque l'utilisateur sort d'un contrôle de formulaire ou lorsque l'utilisateur clique sur le bouton "Soumettre" qui est de type "Soumettre".Accès à l'objet de validation Microsoft Ajax avant l'envoi de l'appel jQuery Ajax au serveur

 <table width="100%"> 
      <tr> 
       <td class="editor-label" width="20%"> 
        <%= Html.LabelFor(model => model.From)%> 
        (Email)* 
       </td> 
       <td width="80%"> 
        <%= Html.TextBoxFor(model => model.From, new { size=30, maxlength=100})%> 
        <%= Html.ValidationMessageFor(model => model.From)%> 
       </td> 
      </tr> 
     <tr> 
       <td class="editor-label" width="20%"> 
       </td> 
       <td width="80%"> 
        <input type="button" id="submitFeedback" value="Send" /> 
        <input type="button" id="cancelFeedback" value="Cancel" onclick="closePopup();" /> 
       </td> 
      </tr> 

Depuis que je suis l'affichage des données de formulaire par Async Ajax appel à l'aide jQuery. Il contourne l'ensemble de validation sur le formulaire. Je souhaite que la validation se produise lorsque l'utilisateur clique sur le bouton que j'utilise à la place du bouton "Envoyer".

$(function() { 
     $('#submitFeedback').click(function() { 
      $.ajax({ 
       type: "POST", 
       url: "/Feedback/SubmitFeedback", 
       data: { from: $('#From').val(), to: $('#To').val(), subject: $('#Subject').val(), body: $('#Comments').val() }, 
       success: function(feedback) { 
        alert(feedback); 
        closePopup(); 
       } 
      }); 
     }); 
    }); 

je dois avoir accès à l'objet de validation de la bibliothèque Microsoft Ajax côté client et je suppose qu'il doit avoir une méthode « IsValid ».

Merci, Mohammad

Répondre

0

Définissez le nom de votre fonction de validation javascript dans le Ajax.BeginForm() AjaxOptions:

Ajax.BeginForm("ActionMethod", new AjaxOptions(){OnBegin = "validateForm"}) { ... 

Ceci appellera la fonction de validation avant que le formulaire est soumis.