2010-05-05 11 views
3

Mon formulaire est envoyé par un lien avec JavaScript, mais j'essaie aussi de valider la validation de justing jQuery. La validation ne fonctionne pas lorsqu'elle est soumise par le lien, mais elle le fait si je modifie le lien vers un bouton d'envoi. Qu'est-ce que je fais mal?jQuery Valider sur le formulaire envoyé par JavaScript

Ma forme:

<form id="findmatch" method="post" action="search"> 
    <div> 
     <label class="formlabel">Match Type 
      <input type="text" name="matchtype" id="matchtype" class="forminput" /> 
     </label> 

     <label class="formlabel">Location (postcode) 
      <input type="text" name="location" id="location" class="forminput" /> 
     </label> 

     <label class="formlabel">Radius (miles) 
      <input type="text" name="Radius" id="Radius" class="forminput" /> 
     </label> 

     <label class="formlabel">Keywords 
      <input type="text" onblur="javascript:usePointFromPostcode(document.getElementById('location').value, showCompleteLatLng)" onchange="javascript:usePointFromPostcode(document.getElementById('location').value, showCompleteLatLng)" name="keywords" id="keywords" class="forminput" /> 
     </label> 

     <input id="lat" class="hidden" name="lat" type="text" value="" /> 
     <input id="lon" class="hidden" name="lon" type="text" value="" /> 

     <a href="javascript:document.getElementById('findmatch').submit();" onmouseover="javascript:usePointFromPostcode(document.getElementById('location').value, showCompleteLatLng)" class="submit">Search</a>       
    </div> 
</form> 

Et mon jQuery est

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#findmatch").validate({ 
      rules: { 
       location: "required", 
       Radius: { 
        required: true, 
        digits: true 
       }, 
       keywords: "required" 
      }, 
      messages: { 
       location: "Please enter your postcode", 
       Radius: { 
        required: "Please enter a radius", 
        digits: "Please only enter numbers" 
       }, 
       keywords: "Please enter the keywords you wish to search for" 
      } 
     }); 
    }); 
</script> 
+0

'jQuery.valid ate() 'a un gestionnaire de soumission que vous pouvez définir pour convenir. Peut-être que cela pourrait aider. http://docs.jquery.com/Plugins/Validation/validate – dnagirl

+0

Pourquoi utilisez-vous un lien pour votre bouton d'envoi? Vous devez utiliser des éléments HTML tels qu'ils sont destinés à être utilisés. – akamike

+0

mis à jour avec la démo! –

Répondre

1

DEMO:http://jsbin.com/urole/3

$(function() { 
    $('#submit').click(function(e) { 
    e.preventDefault(); 
    $("#commentForm").submit(); 
    }); 
    $("#commentForm").validate(); 
}); 

soumettre

+0

Merci, cela a aidé beaucoup – Daniel

+0

Comment faites-vous cela avec le bouton Soumettre? J'ai essayé avec le bouton soumettre, cela ne fonctionne pas. – yogsma

Questions connexes