2012-04-05 14 views
11

Jak włączyć przycisk przesyłania w moim formularzu HTML i wyłączyć, jeśli pole wyboru nie zostało odznaczone?Włącz/wyłącz przycisk wysyłania, jeśli pole wyboru jest zaznaczone/odznaczone?

Co jest nie tak z tym kodem?

EnableSubmit = function(val) 
{ 
    var sbmt = document.getElementById("Accept"); 

    if (val.checked == true) 
    { 
     sbmt.disabled = false; 
    } 
    else 
    { 
     sbmt.disabled = true; 
    } 
}      

Pole wyboru

<td width="30%">Do you accept Terms of Service agreement?</td> 
<td width="10px" style="min-width: 10px"></td> 
<td width="70%"> 
    <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit"> I agree to Terms of Service agreement. 
</td> 
+0

możliwy duplikat [Jak wyłączyć przycisk Prześlij, gdy pole wyboru jest zaznaczenie?] (Http://stackoverflow.com/questions/5458531/how- do-i-disable-a-submit-button-when-checkbox-is-uncheck) –

Odpowiedz

12

Zmień swoje HTML do tego:

<td width="30%">Do you accept Terms of Service agreement?</td> 
<td width="10px" style="min-width: 10px"></td> 
<td width="70%"> 
    <input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit(this)"> I agree to Terms of Service agreement. 
</td> 

Powód nie działa: nie jesteś przekazując swoją funkcję czegokolwiek. W rzeczywistości, ponieważ nie użyłeś nawiasów z nazwą funkcji, w ogóle nie wywołałeś tej funkcji. Podanie go this w kontekście atrybutu zdarzenia HTML HTML onclick oznacza przekazanie odwołania do obiektu DOM elementu, co daje dostęp do jego właściwości checked.

+2

Czy możesz ponownie wpisać pytanie, aby dołączyć reszta źródła do formularza (HTML)? I jakikolwiek inny JavaScript, którego możesz używać? –

3

Trzeba to parametry: onClick="EnableSubmit()"

<input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit()"> I agree to Terms of Service agreement. 
Powiązane problemy