2009-08-06 14 views
32

Mam prosty formularz, aby sprawdzić wartość kodu pocztowego wprowadzonego przez użytkownika przed zmienną,jak wyłączyć przycisk przesyłania z jQuery

próbuję wyłączyć przycisk Prześlij i zrobić czek i dać alert wiadomość, nie mogę zrozumieć, co robię źle, każda pomoc byłaby doceniona.

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

Odpowiedz

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

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

Cześć, jest powyższy kod być zastąpione $ („forma # post_code”). submit (function() {} dzięki – amir

+2

atrybut niepełnosprawnych powinna być ustawiona na „niepełnosprawnego” nie „prawdziwy” – David

+2

Dawida albo pracować przyjacielu – redsquare

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

W3C zaleca, aby ustawić ten atrybut disabled = "disabled", a więc:

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

Ponowne włączenie może być wykonane poprzez usunięcie atrybutu:

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

Ustawienie atrybutu na dowolną wartość powoduje jego wyłączenie, nawet .attr ("wyłączone", "fałsz"), dlatego należy je usunąć.

+0

Od wersji jQuery 1.7 zaleca się używanie ".prop()" i ".removeProp()" zamiast attr. W przeciwnym razie odpowiedź pozostaje doskonała. – Rap

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

Powinieneś zwrócić wartość false, jeśli kod pocztowy jest niepoprawny. Nie?

prawdopodobnie Twój, jeśli nigdy nie rozwiązuje się jako prawda, i zawsze zwraca jako fałszywe. Używanie funkcji submit() jest poprawne.

1

Jeśli sprawdzenie zgadza się, że zwracasz wartość true, a jeśli nie pasuje ... również zwracasz wartość true. Linia return false nigdy nie zostanie osiągnięta.

Prawdopodobnie chcesz zmienić jeden z twoich zobowiązań na false i wyeliminować linię poza blokiem if/else.

1

Jest to kod używam, aby wyłączyć lub ponownie włączyć kontrolę:

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

    }; 

} 
Powiązane problemy