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