2013-07-24 10 views
1

자바에서 라디오 버튼 그룹의 값을 가져 오는 데 많은 어려움이 있습니다. 나는 수 시간 동안 수색했으며 해결책을 찾지 못했습니다. 라디오 버튼 선택에서 값이 무엇인지 보여주기 위해 document.write 명령을 시도하면 모두 "정의되지 않음"으로 돌아옵니다. 그러나 재미있는 점은 첫 번째 라디오 버튼을 선택하면 올바른 값으로 되돌아 오는 것입니다. 이것은 나의 좌절감의 일부이며 라디오 버튼 그룹에서 다른 값을 얻는 방법을 찾는 해결책을 찾지 못했습니다. 이것은 간단해야합니다! 귀하의 도움을 크게 주시면 감사하겠습니다.Javascript 라디오 버튼 값이 undefined를 반환합니다.

값을 얻을려고 내 자바 스크립트 코드를 자세히 살펴 보시기 바랍니다 (거짓 반환을 무시하십시오; 명령을 내 페이지에 코드의 나머지 부분을 정지 사용으로) :

for(i = 0; i < document.forms.incident.elements.model.length; i++) 
{ 
    if(document.forms.incident.elements.model[i].checked) 
    var omodcheck = document.forms.incident.elements.model.value; 
document.write(omodcheck); 
return false; 
} 

내 HTML 양식 이름이 문제입니다. 이 경우

Laptop Model: 
<input type="radio" name="model" value="Lenovo X200" />Lenovo X200<br /> 
<input type="radio" name="model" value="Lenovo X201" />Lenovo X201<br /> 
<input type="radio" name="model" value="Lenovo X200T" />Lenovo X200T<br /> 
<input type="radio" name="model" value="Lenovo X201T" />Lenovo X201T<br /> 
<input type="radio" name="model" value="Lenovo T400" />Lenovo T400<br /> 
<input type="radio" name="model" value="Lenovo R400" />Lenovo R400<br /> 

상기 document.write를위한 코드 I 어떤하는 선택을하면 (omodcheck) 그러나, 값 "레노 X200"을 반환 다음과 같이 라디오 버튼 그룹의 형태로 코드는 다른 라디오 버튼 중 값이 "undefined"로 돌아옵니다!

도와주세요!

+0

'var omodcheck'을 루프 바깥에 배치하고 var omodcheck = ""; – jeff

답변

0

내가 알기로, for-loop가 return false 문에서 끝나는 것은 아주 작은 실수입니다. return false는 for 루프 외부에 있어야합니다.

대신() document.write를의) 약간 경고를 (사용하도록 수정이 jsfiddle (한 번 봐, 내가 제대로 이해한다면,이 같은 필요합니다

btnSubmit.onclick = function(){ 
for(i = 0; i < document.forms.incident.elements.model.length; i++) 
{ 
    if(document.forms.incident.elements.model[i].checked) 
    var omodcheck = document.forms.incident.elements.model.value; 
} 
    alert(omodcheck); 
return false; 
} 
1

:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head> 
<script type="text/javascript"> 
function checkChecked(){ 
    for (var i = 0; i< document.getElementsByName('model').length; i++) { 
     if(document.testform["model"][i].checked){   
      var omodcheck = document.testform["model"][i].value 
      alert(omodcheck); 
     } 
    } 
} 
</script> 
</head> 
<body onload="checkChecked()"> 
Laptop Model: 
<form name="testform"> 
    <input type="radio" name="model" value="Lenovo X200" onchange="checkChecked()" />Lenovo X200<br /> 
    <input type="radio" name="model" value="Lenovo X201" onchange="checkChecked()" />Lenovo X201<br /> 
    <input type="radio" name="model" value="Lenovo X200T" onchange="checkChecked()" />Lenovo X200T<br /> 
    <input type="radio" name="model" value="Lenovo X201T" onchange="checkChecked()" />Lenovo X201T<br /> 
    <input type="radio" name="model" value="Lenovo T400" onchange="checkChecked()" />Lenovo T400<br /> 
    <input type="radio" name="model" value="Lenovo R400" onchange="checkChecked()" checked />Lenovo R400<br /> 
</form> 
</body> 
</html> 
을 귀하의 경우 조건에

또는

사용 괄호 :

,132 10
관련 문제