2014-12-30 6 views
1

Я изучаю javascript из книги «Javascript in 10 steps on less». На задаче 90, где задача выбирает радиокнопки из ссылки, я пробовал код точно в книге. Ошибка: «TypeError: document.myForm.myRadio не является функцией». Мой код выглядит следующим образом:Выбор радиокнопки из ссылок

<script language="JavaScript"> 
function selectButton(button) { 
    document.myForm.myRadio(button).checked = true; 
} 
</script> 
<form name="myForm"> 
    <input type="radio" name="myRadio" value="First Button" /> Button 1<br> 
    <input type="radio" name="myRadio" value="Second Button" /> Button 2 
</form> 
<a href="#" onClick="selectButton(0);">Select First Radio Button</a><br> 
<a href="#" onClick="selectButton(1);">Select Second Radio Button</a> 

Я сам не вижу никакой ошибки в коде. Кто-нибудь поможет мне указать на ошибку.

ответ

1

Там:

function selectButton(button)... 

вы кнопку передавая в качестве аргумента функции selectButton. В этом случае правильно использовать ().

Но:

document.myForm.myRadio(button).checked = true; 

myRadio является массив кнопок. Доступ к индексам в массивах осуществляется с помощью синтаксиса [].

Так оно и должно быть

document.myForm.myRadio[button].checked = true; 

Демо:

<script language="JavaScript"> 
 
    function selectButton(button) { 
 
     document.myForm.myRadio[button].checked = true; 
 
    } 
 
</script> 
 

 
<form name="myForm"> 
 
<input type="radio" name="myRadio" 
 
value="First Button"> Button 1<br> 
 
<input type="radio" name="myRadio" 
 
value="Second Button"> Button 2 
 
</form> 
 
<a href="#" onClick="selectButton(0);">Select First 
 
Radio Button</a><br> 
 
<a href="#" onClick="selectButton(1);">Select Second 
 

 
Radio Button</a> 
 

0

Вы код правильный, но использовать [] кронштейн вместо () как:

<!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"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<title>Untitled Document</title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
</head> 
<body> 
<script language="JavaScript"> 
function selectButton(button) { 
document.myForm.myRadio[button].checked = true; 
} 
</script> 
<form name="myForm"> 
<input type="radio" name="myRadio" 
value="First Button"> Button 1<br> 
<input type="radio" name="myRadio" 
value="Second Button"> Button 2 
</form> 
<a href="#" onClick="selectButton(0);">Select First 
Radio Button</a><br> 
<a href="#" onClick="selectButton(1);">Select Second 
Radio Button</a> 
</body> 
</html> 

FIDDLE DEMO

+3

Это правильный ответ, но это мой обман, который я опубликовал полчаса назад. – nicael

+1

@nicael: это синтаксис javascript, который я исправил, а не ваш. Так что не размещайте подобные вещи здесь. Пожалуйста, будьте профессиональными – Priyank

+1

Итак, если все будут публиковать тот же ответ с другой формулировкой, это хорошо? Повторяю: ваш ответ совсем не отличается от моего. – nicael

Смежные вопросы