2012-04-05 36 views
11

Làm cách nào để bật nút gửi trong biểu mẫu HTML của tôi và tắt nếu hộp kiểm bị bỏ chọn?Bật/Tắt nút gửi nếu hộp kiểm được chọn/bỏ chọn?

Điều gì sai với mã này?

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

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

Các hộp kiểm

<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

thể trùng lặp của [Làm thế nào để tôi vô hiệu hóa một nút gửi khi hộp kiểm là bỏ chọn?] (Http://stackoverflow.com/questions/5458531/how- do-i-disable-a-gửi-nút-khi-bỏ-chọn-bỏ-chọn) –

Trả lời

12

Thay đổi HTML của bạn như thế này:

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

Lý do nó không làm việc: bạn không đi qua bất cứ điều gì chức năng của mình. Trên thực tế, bởi vì bạn đã không sử dụng dấu ngoặc đơn với tên hàm, bạn đã không gọi hàm đó chút nào. Chuyển nó this trong ngữ cảnh của thuộc tính sự kiện HTML onclick HTML có nghĩa là bạn đang chuyển một tham chiếu đến đối tượng DOM của phần tử, cho phép bạn truy cập vào thuộc tính checked của nó.

+2

Bạn có thể nhập lại câu hỏi của mình để bao gồm phần còn lại của nguồn cho biểu mẫu (HTML) không? Và bất kỳ JavaScript nào khác bạn có thể đang sử dụng? –

3

Bạn cần phải bao gồm các thông số: onClick="EnableSubmit()"

<input type="checkbox" name="TOS" value="Accept" onClick="EnableSubmit()"> I agree to Terms of Service agreement. 
Các vấn đề liên quan