2009-08-06 6 views
32

J'ai une forme simple pour vérifier la valeur du code postal entré par l'utilisateur contre une variable,comment désactiver le bouton d'envoi avec jquery

J'essaie de désactiver le bouton soumettre et faire la vérification et de donner l'alerte message, je ne peux pas comprendre ce que je fais mal, toute aide serait appréciée.

<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; 
}); 

});

+0

http://stackoverflow.com/questions/1594952/jquery-disable-enable-submit-button –

Répondre

-3
//disable 
$('#submit_postcode').attr('disabled', true); 

//re-enable 
$('#submit_postcode').removeAttr('disabled'); 
+0

Salut, est le code ci-dessus doit être remplacé par $ ('formulaire # code postal'). submit (function() {} merci – amir

+2

attribut désactivé doit être réglé sur 'désactivé' pas 'vrai' – David

+2

David, soit travailler mon ami – redsquare

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

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

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

Réactiver peut être fait en supprimant l'attribut:

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

La définition de l'attribut à une valeur entraîne sa désactivation, même .attr ('disabled', 'false'), il doit donc être supprimé.

+0

À partir de jQuery 1.7, il est recommandé d'utiliser ".prop()" et ".removeProp()" au lieu de attr. Sinon, la réponse reste parfaite. – Rap

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

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

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

1

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

Vous voulez probablement changer l'un de vos indices en faux, et éliminer la ligne en dehors du bloc if/else.

1

Voici 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"); 

    }; 

} 
Questions connexes