Форум → Программирование → JavaScript → помогите с радио-переключателями
помогите с радио-переключателями
Страницы: ← Следующая страница →
-
тривиальная задачка…по самое немогу……..
но почемуто не фурычит…
у нас есть форма с радиопереключателями…..
имя у них естессно одинаковое…(допустим "otv")…
у каждого "otv" есть разные value…в моем случае это цыфры с одого до 5ти….
ни на одно по дефолту не стоит - чекед…
мне надо немного…всего лишь вывести выбранное значение (с 1 по 6) методом алерт….
я вообщето сделал даже как в книжке…..(а там зачастую должна же быть правда :D)
вообщем так
форма:
<form onsubmit="return false" method=post >
<table align=center cellpadding=0 border=0>
<tr><td><input type=radio name=otv value=1></td>
<td>Просто супер!</td></tr>
<tr><td><input type=radio name=otv value=2></td>
<td>Нормальный.</td></tr>
<tr><td><input type=radio name=otv value=3></td>
<td>Так себе.</td></tr>
<tr><td><input type=radio name=otv value=4></td>
<td>Мне все равно.</td></tr>
<tr><td><input type=radio name=otv value=5></td>
<td>Плохой.</td></tr>
<tr><td><input type=radio name=otv value=6></td>
<td>Хуже не видел!</td></tr>
<tr><td colspan=2 align=center>
<input type=button name=g value="Нажать" onClick= "getindex()">
скрипт обработки:
<script type="text/javascript">
function getindex()
{ var f = document.forms[0];
for(var i=0; i<f.otv.lenght; i++)
{
if (f.otv.checked)
{
break ;
}
}
var d = f.otv.value ;
alert(d) ;
}
</script>
Беда, товарищи, но не работает……
всегда выводит значение 1.
тоесть фактически первый елемент массива otv.
я с яваскриптовским синтаксисом не очень знаком…..вообщето…
но тут ошыбка гдето не в синтаксисе….а структуре кода видимо…..
…..пример взят из известной "Библии пользователя по яваскрипте"(той в которой поза 1000 страниц)
я там кстати разными способами пробовал…..но не рожает почемуто….
может переменная "i" после цыкла умирает, или как понять это? -
-
23 ноября 2008 г. 23:20, спустя 1 минуту 4 секунды
да наверное не ток меня, но и автора книги заодно)) -
-
23 ноября 2008 г. 23:21, спустя 1 минуту 2 секунды
короче document.forms[] - и form.otv - совковые костыли. юзай document.getElementById + document.getElementsByNameСапожник без сапог -
24 ноября 2008 г. 0:13, спустя 51 минуту 18 секунд
function getindex()
{
var el = document.getElementsByName("otv");
for(var i=0; i<el.lenght; i++)
{
if (el.checked)
{
break ;
}
}
var d = el.value ;
alert(d) ;
}
то же самое…(……..
учитывая то что getElementsByName я походу применил правильно…
вот..в какойто документации было..
"getElementsByName("имя")
Метод возвращает массив ссылок на объекты, атрибут name которых определяет имя элемента и передаётся как параметр для метода. Рекомендуется использовать данный метод только для явно определённых имён. Если элементов с данным именем метод в докумете не находит, он возвращает массив нулевой длины.
Пример:
var RadioButtonGroup = document.getElementsByName("radioGroupName");
Возвращаемое значение:
Массив объектов
Параметры
имя Имя, присвоенное в дескрипторе или сценарии"
тут не в этом дело……
мож у мя браузер шото не того…… -
24 ноября 2008 г. 0:15, спустя 2 минуты 49 секунд
function getindex()
{
var el = document.getElementsByName("otv");
for(var i=0; i<el.lenght; i++)
{
if (el.checked)
{
d = el.value ;
break ;
}
}
alert(d) ;
}
попробуй. и на будущее, форматируй код, гавнопортянки читать нихуя не приятно :(
если прсишь помощи, будь добр хотя бы подготовиться)Сапожник без сапог -
24 ноября 2008 г. 0:26, спустя 11 минут 4 секунды
спасибо камрад, пробовал…и так даже
но дебагер пищит что переменная d неопределена(d is not defined
[Break on this error] alert(d) ;)
лан…..спасибо хоть за это…
а на счет оформления - я в курсе, что читать это неподобство тяжко(правда там того кода - как кот наплакал)
просто ни разу кодов еще не отправлял….
буду придерживаться стандартов и правил в дальнейшем. -
24 ноября 2008 г. 0:35, спустя 8 минут 25 секунд
а по темеfunction getindex()
{
var el = document.getElementsByName("otv");
for(var i=0; i<el.lenght; i++)
{
if (el.checked)
{
d = el.value ;
break ;
}
}
alert(d) ;
}
форматируйте и найдете ошибку сразу ;) это я вам и правда советую
ошибка тут.
el.lenght а надо el.length, да согласен ебучее слово, сам раньше так постоянно ошибался)Сапожник без сапог -
24 ноября 2008 г. 0:42, спустя 7 минут 11 секунд
шобы меня кони гралы………..это ж надо……..))))))))
ну елки палки………..я то думаю в чем дело…
канешн…в пхп всегда использовал count а не length, а тут вот тебе на)))…
я очень извиняюсь….за неграмотность (и всетаки синтаксис)…..
спасибо…..за внимание и может даже за потрепанные нервы…
очень благодарен..
теперь буду смотреть на это бдительнее… -
24 ноября 2008 г. 0:49, спустя 6 минут 59 секунд
форматируй код, ошибок будет меньше, это не шутка )))
реальни памагает)
ну и конечно школу надо закончить "ошыбка "Сапожник без сапог -
24 ноября 2008 г. 1:30, спустя 41 минуту 14 секунд
el.lenght а надо el.length, да согласен ебучее слово, сам раньше так постоянно ошибался)
+1, а еще я часто на label туплю…. пишу lable //автоматом сцуко :)https://smappi.org/ - платформа по созданию API на все случаи жизни -
24 ноября 2008 г. 1:33, спустя 3 минуты 5 секунд
да бывает, но с опытом реже, с опытом скорее от усталости и сидения в 4 часа ночи за работой такие ошибки бывают :-D
а ошибка стандартная, в этом случае count - удобнее, с ним не наебешься)
а в .net еще проще, там всегда .count для всех ICollection.Сапожник без сапог -
24 ноября 2008 г. 1:48, спустя 14 минут 19 секунд
а ошибка стандартная, в этом случае count - удобнее, с ним не наебешься)
sizeOfhttps://smappi.org/ - платформа по созданию API на все случаи жизни -
24 ноября 2008 г. 1:54, спустя 6 минут 46 секунд
ути микрооптимизаторы ….. …. заметная разница на переборее больее 5000(даже 10000) элементов. мой сервер делает
motango:~# time php -r 'for($i=0;$i<10000000;$i++) { rand(0,10000000); };'
real 0m2.420s
user 0m2.412s
sys 0m0.008s
а вы говорите про sizeof :-DСапожник без сапог
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!