В этом бите кода:
getRadioButtonValue(this["whichThing"]))
вы на самом деле не получаете ссылку ни на что. Следовательно, ваша радиопереключатель в функции getradiobuttonvalue не определен и выдает ошибку.
EDIT
Чтобы получить значение из переключателей, возьмите библиотеку JQuery и затем используйте это:
$('input[name=whichThing]:checked').val()
Редактировать 2
Из-за желания заново изобрести колесо, вот код не-Jquery:
var t = '';
for (i=0; i<document.myform.whichThing.length; i++) {
if (document.myform.whichThing[i].checked==true) {
t = t + document.myform.whichThing[i].value;
}
}
или, в основном, измените исходную строку кода следующим образом:
getRadioButtonValue(document.myform.whichThing))
Редактировать 3
Вот твоя домашняя работа:
function handleClick() {
alert("Favorite weird creature: " + getRadioButtonValue(document.aye.whichThing));
//event.preventDefault(); // disable normal form submit behavior
return false; // prevent further bubbling of event
}
</script>
</head>
<body>
<form name="aye" onSubmit="return handleClick()">
<input name="Submit" type="submit" value="Update" />
Which of the following do you like best?
<p><input type="radio" name="whichThing" value="slithy toves" />Slithy toves</p>
<p><input type="radio" name="whichThing" value="borogoves" />Borogoves</p>
<p><input type="radio" name="whichThing" value="mome raths" />Mome raths</p>
</form>
Обратите внимание на следующее: я переместил вызов функции в событие onSubmit формы. В качестве альтернативы можно заменить стандартную кнопку SUBMIT и поместить ее в событие OnClick для кнопки. Я также удалил ненужный «JavaScript» перед именем функции и добавил явный RETURN для значения, выходящего из функции.
В самой функции я изменил способ доступа к форме. Структура является:
документ. [ИМЯ ФОРМЫ]. [ИМЯ УПРАВЛЕНИЯ] , чтобы добраться до вещей. Поскольку вы переименовали свое имя в aye, вам пришлось изменить document.myform. к документу. Кроме того, document.aye ["whichThing"] просто неверен в этом контексте, так как он должен был быть document.aye.whichThing .
Последний бит, когда я закомментировал event.preventDefault (); . эта линия не была нужна для этого образца.
РЕДАКТИРОВАТЬ 4 Просто чтобы быть ясно. document.aye ["whichThing"] предоставит вам прямой доступ к выбранному значению, но document.aye.whichThing предоставит вам доступ к коллекции переключателей, которые вам затем понадобятся проверять. Поскольку вы используете функцию «getRadioButtonValue (object)» для итерации коллекции, вам нужно использовать document.aye.whichThing .
Смотрите разницу в этом методе:
function handleClick() {
alert("Direct Access: " + document.aye["whichThing"]);
alert("Favorite weird creature: " + getRadioButtonValue(document.aye.whichThing));
return false; // prevent further bubbling of event
}