Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Логические выражения (https://javascript.ru/forum/dom-window/10909-logicheskie-vyrazheniya.html)

suriv 28.07.2010 01:46

Логические выражения
 
<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 естественно), в чем может быть проблема ведь логическое условие было подобрано верно ?

Gvozd 28.07.2010 01:53

Цитата:

Сообщение от 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 == ''){

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


Часовой пояс GMT +3, время: 16:27.