2009-08-06 4 views
32

ich eine einfache Form haben durch den Benutzer gegen eine Variable, die den Wert der Postcode eingegeben zu überprüfen,wie deaktivieren Absenden-Button mit jquery

Ich versuche, die Submit-Button und machen die Prüfung zu deaktivieren und Alarm geben Nachricht, ich kann nicht herausfinden, was ich falsch mache, jede Hilfe wäre willkommen.

<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 –

Antwort

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

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

Hallo, der obige Code wird ersetzt durch $ ('form # post_code'). send (function() {} danke – amir

+2

deaktiviertes Attribut sollte auf 'deaktiviert' gesetzt werden, nicht 'wahr' – David

+2

David, arbeite entweder mein Freund – redsquare

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

Das W3C empfiehlt dieses Attribut gesetzt disabled = "disabled", so:

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

erneute Aktivierung kann durch Entfernen des Attributs erfolgen:

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

Wenn das Attribut auf einen beliebigen Wert gesetzt wird, wird es deaktiviert, sogar .attr ('deaktiviert', 'falsch'), sodass es entfernt werden muss.

+0

Ab jQuery 1.7 wird empfohlen, ".prop()" und ".removeProp()" anstelle von attr zu verwenden. Ansonsten bleibt die Antwort perfekt. – Rap

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

sollten Sie falsch zurück, wenn eine Postleitzahl nicht in Ordnung ist. Nein?

wahrscheinlich Ihre, wenn es nie als wahr löst, und es immer als falsch zurückgibt. Die Verwendung der Funktion submit() ist korrekt.

1

Wenn die Überprüfung übereinstimmt, geben Sie true zurück, und wenn sie nicht übereinstimmt, geben Sie auch true zurück. Die return false Zeile wird nie erreicht.

Wahrscheinlich möchten Sie einen Ihrer trues in false ändern und die Zeile außerhalb des if/else-Blocks eliminieren.

1

Dies ist der Code, den ich verwende, um eine Kontrolle zu deaktivieren oder wieder zu aktivieren:

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

    }; 

} 
Verwandte Themen