2011-09-20 6 views
2

체크 박스가 선택된 경우에만 제출 버튼을 활성화하는 양식이 있습니다. 문제는 자바 스크립트가없는 사람들이 제출 버튼을 활성화 할 수 없다는 것입니다. 이 문제에 대한 최선의 해결책은 무엇입니까?jQuery form accept 체크 박스, submit 버튼 비활성화

<script src="http://www.lenticularpromo.com/v/vspfiles/js/jquery-1.6.2.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(function(){ 
$('#accept-box').click(function(){ 
$('#submitter').attr('disabled',!this.checked); 
}); 
$('#myform').submit(function(){ 
return $('#accept-box').attr('checked'); 
}); 
}); 
</script> 

<form id="myform" class="accept" action="http://dropbox.yousendit.com/KefengXu11610470" method="GET"> 
<label>I promise to include all required information along with my artwork submission</label> 
<input id="accept-box" name="accept" type="checkbox" value="0"> 
<br> 
<input id="submitter" class="submit" type="submit" name="submit" value="Continue to artwork upload" disabled="disabled"> 
</form> 

답변

2

제 생각에는 HTML에 제출 버튼을 활성화하고 JavaScript를 사용하지 않도록 설정하는 것이 가장 좋습니다. 서버 측에서 체크 박스가 선택되었는지 확인합니다 (클라이언트 측에서도 서버 측의 유효성을 검사해야 JavaScript가 비활성화되거나 무시 될 수 있습니다).

+0

JavaScript를 사용하여 제출 버튼을 어떻게 비활성화 할 수 있습니까? – cleanerupper

+1

'$ ('# submitter'). attr ('disabled', true);'를 자바 스크립트의 시작 부분에 넣으십시오. –

+0

로랑은 내 반응과 그에 대한 예를 들어 답했습니다. –

0

가장 좋은 방법은 JS를 사용하도록 설정하거나 서버 측에서만 확인하는 것입니다.

Google도 그렇게합니다.

0

<noscript> 태그를 페이지에 사용하면 JavaScript가 활성화되지 않은 사용자를위한 특별한 메시지를 표시 할 수 있습니다. js없이 사이트가 이상적으로 작동하지 않는다고 말하면 서버에서 유효성 검사를 수행하십시오.

1

마크 업에서 disabled 속성을 하드 코드하지 마십시오. 대신 javascript/jquery를 통해 해당 속성을 추가하십시오. 그렇게하면 JS를 사용하지 않으면 절대로 사용할 수 없지만 JS가 있으면 논리가 적용됩니다.

"체크 박스 클릭"버튼 요구 사항을 통과하기 위해 JS를 비활성화 할 수 있기 때문에 서버 측에서 후속 작업을 수행 할 수 있습니다.