2009-03-19 9 views
3

Salutationsproblème avec la désactivation des boutons submit sur le formulaire soumettre

J'utilise le jquery DISABLE soumettre plug-in, mais j'ai un problème. Si je désactive les boutons de soumission, ils ne sont pas transmis au serveur, donc je ne peux pas dire quel bouton a été pressé. Est-ce normal? Y a-t-il quelque chose que je puisse faire à ce sujet? Je ne veux vraiment pas rééquiper mon site web, donc je dois définir une variable sur la soumission du formulaire pour savoir quel bouton a été enfoncé.

Des idées?

Répondre

0

Voici une solution que je viens de trouver dans a jQuery forum:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#sendSearch").click(function() { 
      $('#loadingDiv').show(); 
      $('#sendSearch').attr("disabled", "disabled"); 

      // these two lines are the workaround 
      this.form.submit(); 
      return true; 
     }); 
    }); 
</script> 
+0

Oui c'est le cas, sinon je ne le posterais pas. Dans quel navigateur ne fonctionne-t-il pas? Version? –

+0

+ 1 pas sûr pourquoi cela a été voté mais imho thats le meilleur que cela fonctionne avec ou sans javascript – Jordie

+0

Avez-vous essayé cela avec un formulaire Web ASP.NET? Je ne le pensais pas. –

0

Vous pouvez faire le soumettre via jquery et désactiver le bouton après:

<input type="submit" value="do it!" onclick="$('#mainform').submit(); $(this).attr('disabled','disabled'); $('#pleasewait').show();" /> 

EDIT: J'ai oublié form.submit() n'est pas asynchrone. Vous pouvez faire une demande ajax place:

$.ajax({ 
url: "someurl", 
type:"POST", 
cache: false, 
dataType: "json", 
success:gotIt, 
async:true, 
timeout:240000, 
error:ajaxError, 
data:$("#mainform").serialize() 
}); 

ou vous pouvez simplement .hide() sur le bouton, ou après avoir cliqué sur ce réglage un gestionnaire onClick() non fonctionnel et le style à regarder désactivé.

+0

Ne pas que je dois fournir les paramètres post faire appel ajax aussi? – Jordie

3

How to Disable the Submit Button of a Web Form

Cette méthode se cache le bouton au lieu de le désactiver, et insère une balise programme <bouton> désactivé pour le faire apparaître comme le bouton d'envoi a été désactivé. Fonctionne très bien.

0

plus simple :)

var formid="#id-form-if-exists"; //Put here the id if exists 
$("form"+formid).submit(function(){$("form"+formid+" input").attr("disabled",false);}); 

YEAH

Questions connexes