2012-04-05 24 views
11

Gönderim kutusu HTML formumda nasıl etkinleştirilir ve onay kutusu işaretli değilse nasıl devre dışı bırakılır?Onay kutusu işaretlendiğinde veya işaretlenmediyse gönder düğmesini etkinleştir/devre dışı bırak?

Bu koddaki sorun nedir?

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

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

onay kutusu

<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

olası yinelenen [Nasıl onay kutusu işaretini olduğunda Gönder düğmesini devre dışı bırakabilirim?] (Http://stackoverflow.com/questions/5458531/how- do-i-disable-a-submit-button-check-checkbox-is-uncheck) –

cevap

12

Değişim Buna HTML: Eğer işlev şey geçen değiliz: işe yaramıyor

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

Nedeni. Aslında, işlev adıyla parantez kullanmadığınız için, işlevi hiç çağırmadınız. this'un onclick HTML olayı özniteliği bağlamında geçirilmesi, öğenin DOM nesnesine bir başvuru ilettiğiniz anlamına gelir; böylece checked özelliğine erişebilirsiniz.

+2

Sorunuza, formun (HTML) geri kalan kısmını eklemek için yeniden girer misiniz? Ve diğer herhangi bir JavaScript kullanıyor olabilirsiniz? –

3

Sen parametreleri dahil etmek gerekir: bir onClick="EnableSubmit()"

<input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit()"> I agree to Terms of Service agreement. 
İlgili konular