Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2010, 01:46
Новичок на форуме
Отправить личное сообщение для suriv Посмотреть профиль Найти все сообщения от suriv
 
Регистрация: 28.07.2010
Сообщений: 2

Логические выражения
<hr>
<form name="myForm" onSubmit="return checkF()" action="test.cgi" method="POST">
<input type="text" name="text1"><br>
<input type="text" name="text2"><br>
<input type="text" name="text3"><br>
<input type="text" name="text4"><br>
<input type="submit" name="mySubmit" value="d">
<input type="reset" name="resetButton" value="">

</form>


<script type="text/javascript">
document.write(document.myForm.elements[4].type+"<br>");
document.write(document.myForm.elements.length);
	function checkF(){
		var validFlag = true ; 
		var nums = document.myForm.elements.length;
		for (i=0;i<nums ;i++ ){
			if ((document.myForm.elements[i].value == '' || document.myForm.elements[i].value == '') && (document.myForm.elements[i].type != 'reset' || document.myForm.elements[i].type != 'submit' )){
				alert("The \""+document.myForm.elements[i].name+"\" is empty");
				validFlag = false;
				break;
			}
		}
		return validFlag;
	}

</script>


Вылетает алерт, хотя по идее условие задано правильно, хотя если код проверки условия изменить на (т.е убрать "|| логич. или":
if ((document.myForm.elements[i].value == '') && (document.myForm.elements[i].type != 'reset'))

то всё работает(кроме кнопки submit естественно), в чем может быть проблема ведь логическое условие было подобрано верно ?
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2010, 01:53
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от suriv
document.myForm.elements[i].value == '' || document.myForm.elements[i].value == ''
масло маслянное.
Сообщение от suriv
(document.myForm.elements[i].type != 'reset' || document.myForm.elements[i].type != 'submit' )
всегда истинно
Сообщение от suriv
 if ((document.myForm.elements[i].value == '' || document.myForm.elements[i].value == '') && (document.myForm.elements[i].type != 'reset' || document.myForm.elements[i].type != 'submit' )){
со спокойной совестью сокращается до
if (document.myForm.elements[i].value == ''){

вывод: марш в школу, учить основы логики
ну, или ввиду нерабочисти сейчас школы, марш за книги
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярные выражения maket Общие вопросы Javascript 3 19.07.2010 22:32
While как условные выражения Latro Общие вопросы Javascript 23 27.06.2010 14:53
Функции поиска и замены строк или регулярные выражения? Armen Общие вопросы Javascript 1 01.01.2010 12:35
построение XPath выражения endryha Общие вопросы Javascript 5 11.03.2009 17:00
Регулярные выражения ? grusha jQuery 34 03.03.2009 22:29