2013-07-24 3 views
1

У меня возникли трудности с получением значения из группы переключателей в Javascript. Я искал часы и не нашел решения. Когда я пытаюсь выполнить команду document.write, чтобы показать, что это значение из выбора переключателя, все они возвращаются как «undefined». Но самое смешное, если я выберу первый переключатель, он вернется с правильным показанным значением. Это часть моего разочарования, и я не нашел решения, чтобы узнать, как получить другие значения в группе переключателей, это должно быть ПРОСТО! Ваша помощь будет принята с благодарностью.Значки кнопок радиосвязи JavaScript не определены

Пожалуйста, внимательно посмотреть на мой код Javascript, чтобы попытаться получить значение (не обращайте внимание на возвращение ложным; команду, как я использую его, чтобы остановить остальную часть кода на моей странице):

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 (omodcheck) возвращает значение «Lenovo X200», однако, если сделать выбор для любого других переключателей, значение возвращается «undefined»!

Пожалуйста, помогите!

+0

Поместите «var omodcheck» вне цикла и переопределите как var omodcheck = ""; – jeff

ответ

0

Исходя из того, что я понимаю, это очень маленькая ошибка в том, что for-loop заканчивается на возвращаемом ложном утверждении. Возвращаемое значение false должно быть вне цикла for.

Взгляните на эту jsfiddle (слегка видоизмененный использовать сигнал() вместо document.write();

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> 

или

использовать скобки на вашем, если условие:

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[i].value; 
     document.write(omodcheck); 
    } 
} 
Смежные вопросы