34 votes

comment désactiver le bouton d'envoi avec jQuery

J'ai un formulaire simple pour vérifier la valeur du code postal saisie par l'utilisateur par rapport à une variable,

J'essaie de désactiver le bouton d'envoi, de vérifier et d'envoyer un message d'alerte. Je n'arrive pas à comprendre ce que je fais mal. Toute aide serait la bienvenue.

   <form id="post_code">
        <input name="textfield" type="text" id="postcode" size="14" maxlength="8" />
        <input type="image" id="submit_postcode" src="images/B_go.png" alt="Submit Postcode" width="59" height="24" border="0" />
  </form>


$(function() {

   $('form#post_code').submit(function() {

	var entered_post_code = $('form#post_code input#postcode').val();
	var post_code = "CV";
	if (entered_post_code == post_code) {
		alert("post code is ok");
		return true;
	}else {
		alert("post code is not ok");
		return true;
	}
	return false;	
});
 

});

74voto

Mythica Points 735

Le W3C recommande de définir cet attribut sur disabled = "disabled", ainsi:

 $('#submit_postcode').attr('disabled', 'disabled');
 

La réactivation peut être effectuée en supprimant l'attribut:

 $('#submit_postcode').removeAttr('disabled');
 

Définir l'attribut sur n'importe quelle valeur entraîne sa désactivation, même .attr ('disabled', 'false'), il doit donc être supprimé.

4voto

David Points 7618
$('#submit_postcode').attr('disabled', 'disabled');

1voto

Quentin Points 325526

Si la vérification correspond, vous retournez true et si elle ne correspond pas… vous renvoyez également true. La ligne return false n'est jamais atteinte.

Vous voudrez probablement changer un de vos vrais en faux et éliminer la ligne en dehors du bloc if / else.

1voto

Carnotaurus Points 1861

C'est le code que j'utilise pour désactiver ou réactiver un contrôle:

 function handleControlDisplay(className, foundCount, checked) {



    var button = jQuery(className);



    if (foundCount > 0 && foundCount == checked) {

        // enable

        button.removeAttr("disabled");

    }

    else {

        // set the disabled attribute

        button.attr("disabled", "true");

    };

}
 

0voto

Elzo Valugi Points 10906
 var entered_post_code = $('form#post_code input#postcode').val();
// rewrite as
var entered_post_code = $("#post_code input[id=postcode]").val();
 

Vous devez retourner false si le code postal n'est pas correct. non?

probablement votre si cela ne résout jamais comme vrai, et il retourne toujours comme faux. L'utilisation de la fonction submit () est correcte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X