2011-11-06 4 views
0

체크 표시가 무엇인지에 관계없이 항상 내 체크 박스가 "예"로 평가되는 이유를 알 수 없습니다.html 체크 박스에 문제가있다

html로 :

<input type="checkbox" name="email" id="email" value="yes">Yes<br> 
<input type="checkbox" name="email" id="email" value="no" checked >No<br> 

var email = document.getElementById('email').value; 

와 PHP에 의해 액세스되는 단지 $_GET '이메일'의 값을 -ing이지만 항상로 설정되는 것으로이를 처리 "예".

+0

당신은 모든 HTML 요소에 대한 ** 독특한 ** ID를 가져야한다. 따라서 두 개의 id = "email"이 있기 때문에 이것은 좋지 않습니다. –

+0

체크되지 않은 체크 박스의 값은 제출되지 않으므로 상자를 선택하지 않으면 PHP에 "예"또는 "아니오"가 표시되지 않습니다. 예/아니오 옵션을 선택하지 않아도된다는 생각이 들지 않겠지 만 라디오 버튼을 사용하지 않는 이유는 무엇입니까? – nnnnnn

답변

6

ID 속성은 고유해야하며 document.getElementById은 첫 번째로 일치하는 요소를 반환하기 때문에

+0

나는 다만 질문이있다; if (document.getElementById ('email'). checked == true) \t { \t \t var email = document.getElementById ('email'). 값; \t} 확인란을 선택했지만 많은 처리 속도가 느려졌습니다. 이유가 궁금합니다. – Sam

+0

변수가'email'이 설정 되었기 때문에 처리가 느려지는 것 같지 않습니다. 그런데 체크 박스를 다루는 접근 방식은 두 가지 이상의 선택에 대해 매우 효과적이지 않을 것입니다. id를 할당하는 대신 폼 요소에 ID를 할당하고 어떤 요소가 체크되어 있는지 확인하기 위해'name' 입력을 사용하여 요소를 반복합니다. –

-1

간단히 말하면, 확인란입니다. 라디오 버튼 (type="radio")은 그룹 내에서 하나의 상자 만 선택하여 적용 할 수있는 유형이며 원하는 것일 수 있습니다.

1

예/아니오 응답 만 원한다면 라디오 버튼을 사용해야한다는 것은 사실입니다. 확인란을 의도적으로 사용 했습니까? 당신이 체크 박스에 대해 쓴 라디오 버튼의 코드는 다음과 같습니다

PHP :

<?PHP 
$selected_radio = $_POST['answer']; 
print $selected_radio; 
?> 

HTML : 다음

<FORM name ="form1" method ="post" action ="radioButton.php"> 
<Input type = 'Radio' Name ='answer' value= 'Yes'>Yes 
<Input type = 'Radio' Name ='answer' value= 'No'>No 
<Input type = "Submit" Name = "Submit1" VALUE = "Select a Radio Button"> 
</FORM> 

당신이 정말로 확인란을 사용하려면, 개별 ID를 부여하고 개별적으로 확인하십시오.

HTML :

<input type="checkbox" name="email" id="email_yes" value="yes">Yes<br> 
<input type="checkbox" name="email" id="email_no" value="no" checked >No<br> 

JS는 :

var email = (document.getElementById('email_yes').value == 1) 'yes' : 'no'; 
관련 문제