Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.07.2010, 20:04
Интересующийся
Отправить личное сообщение для boris2000 Посмотреть профиль Найти все сообщения от boris2000
 
Регистрация: 25.11.2009
Сообщений: 22

Проверка отметки radiobutton не работает
Подскажите что делаю не так.
Есть форма, и надо проверить во всех ли группах radiobutton пользователь сделал отметку (любую? главное чтобы все отметил). Скрипт прилагаю - не работает!


// сперва функция проверки radiobutton
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

// основная функция проврки и отправки формы
function CallOnSubmit(){
// массив с именами обязательных к заполнению radiobutton
var obligatory_radiobutton_array = ["articletype", "studycoverage", "studysampling", "studiedpopulationage", "studiedpopulationsex", "studiedpopulationurbanicity", "studydesign", "studyfollowup", "otherriskfactors"];
var obligatory_radiobutton_names_array = ["Article type", "Study population coverage", "Study sampling strategy", "Studied population age", "Studied population sex", "Studied population urbanicity", "Study design", "Does study include follow-up", "Do risk factors for CKD in studied population are reported"];

var string4notice = "";
for(j = 0; j <= obligatory_radiobutton_array.length; j++) {
	if (getCheckedValue(document.forms['aef'].elements[obligatory_radiobutton_array[j]]) = ""){
		string4notice = string4notice + "\n\r" + obligatory_radiobutton_names_array[j];
	}
}

if(string4notice != ""){
	string4notice = "Please note the following questions have to be answered before Abstract estimation form submission:" + "\n\r" + string4notice;
	confirm (string4notice);
}

	return false;
}


код формы
<form action="examination_step2.php" method="post" name="aef" target=_parent>

<BUTTON TYPE = BUTTON ONCLICK="CallOnSubmit();">Check</BUTTON><br>

<div class="abstract_estimation_list"><label><input type="radio" name="studydesign" value="1" />case-control study</label><br />
<label><input type="radio" name="studydesign" value="2" />cross-sectional study</label><br />
<label><input type="radio" name="studydesign" value="3" />retrospective cohort study</label><br />
<label><input type="radio" name="studydesign" value="4" />prospective cohort study</label><br />
<label><input type="radio" name="studydesign" value="5" />randomized controlled trial</label><br />
<label><input type="radio" name="studydesign" value="6" />registry report</label><br />
<label><input type="radio" name="studydesign" value="0" />not reported</label><br /></div>

 ...
и так далее для каждой группы перечисленной в массиве obligatory_radiobutton_array
...

</form>

Последний раз редактировалось boris2000, 25.07.2010 в 21:58.
Ответить с цитированием
  #2 (permalink)  
Старый 25.07.2010, 20:13
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

boris2000,
отформатируйте код в Вашем посте. Покажите код формы и что это if(string4notice<>"") ?

Последний раз редактировалось JsLoveR, 25.07.2010 в 20:15.
Ответить с цитированием
  #3 (permalink)  
Старый 25.07.2010, 20:17
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

j <= obligatory_radiobutton_array.length


Здесь очевидно выбивает ошибку, т.к. в последней итерации obligatory_radiobutton_array[j] равен undefined, т.к. length всегда на один больше кол-ва эл-тов в массиве.
Ответить с цитированием
  #4 (permalink)  
Старый 25.07.2010, 20:35
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

Цитата:
и что это if(string4notice<>"") ?
Наверное, автор подразумевал ==...
Ответить с цитированием
  #5 (permalink)  
Старый 25.07.2010, 20:46
Интересующийся
Отправить личное сообщение для boris2000 Посмотреть профиль Найти все сообщения от boris2000
 
Регистрация: 25.11.2009
Сообщений: 22

if(string4notice<>"") - имеется в виду что если получившееся сообщение в string4notice не пустое, то значит какие-то флажки не были отмечены и надо выдать пользователю напоминание чтобы он все отметил.

приписал -1 в код чтобы длина массива не превышала числа его значений, все равно не работает
for(j = 0; j <= obligatory_radiobutton_array.length - 1; j++) {
Ответить с цитированием
  #6 (permalink)  
Старый 25.07.2010, 20:48
Интересующийся
Отправить личное сообщение для boris2000 Посмотреть профиль Найти все сообщения от boris2000
 
Регистрация: 25.11.2009
Сообщений: 22

испарвил на просто < - не работает

for(j = 0; j [COLOR="Red"]<[/COLOR] obligatory_radiobutton_array.length; j++) {
Ответить с цитированием
  #7 (permalink)  
Старый 25.07.2010, 21:23
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

Сообщение от boris2000
имеется в виду что если получившееся сообщение в string4notice не пустое
if(string4notice!="")
Ответить с цитированием
  #8 (permalink)  
Старый 25.07.2010, 21:57
Интересующийся
Отправить личное сообщение для boris2000 Посмотреть профиль Найти все сообщения от boris2000
 
Регистрация: 25.11.2009
Сообщений: 22

спасибо, исправил на !-. Но все равно не работает! А ведь вроде бы должно!
Ответить с цитированием
  #9 (permalink)  
Старый 25.07.2010, 22:06
Интересующийся
Отправить личное сообщение для boris2000 Посмотреть профиль Найти все сообщения от boris2000
 
Регистрация: 25.11.2009
Сообщений: 22

Путем исключения отдельных строк комментариями установил что работает все по отдельности кроме строчки
if (getCheckedValue(document.forms['aef'].elements[obligatory_radiobutton_array[j]]) = ""){

может я как-то не так ссылаюсь на объект формы?
я в JS вообще мало разбираюсь, тем более в таких вещах, я на php программирую, а в этой страничке без JS никуда ...
Ответить с цитированием
  #10 (permalink)  
Старый 25.07.2010, 22:07
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

getCheckedValue(document.forms['aef'].elements[obligatory_radiobutton_array[j]]= "")

ххх, опередили))

boris2000, у Вас как-то всё кривовато, почему просто не пробегаться по всем чекбоксам и не собирать у выделенных чекбоксах value? Вам нужно просто выбранные value собирать?

Последний раз редактировалось JsLoveR, 25.07.2010 в 22:21.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ява-скрипт выборочно работает-не работает zeta777 Internet Explorer 0 20.01.2010 11:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11
Не работает eval в IE ..::Silence::.. Общие вопросы Javascript 8 25.03.2009 13:16
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32