表单验证错误。重定向到错误页面

时间:2018-04-09 04:16:07

标签: javascript html css

所以我创建了一个表单。我正在尝试使用JavaScript来验证字段。当我按提交时,它什么也没做。它只是将我发送到一个页面,上面写着“找不到您的文件”。我确实认识到代码主要是HTML而不是JS。我一直在测试,因为我已经开始测试了。任何帮助表示赞赏

这是我的代码:

				
function validateForm() {
					
var firstname = document.myForm.fname.value;
if (firstname === "" || firstname === " ") {
	alert("First name is empty!");
	return false;
}
						
var middlename = document.myForm.middle.value;
	if (middle == "" || middle == " ") {
	   alert("Middle name is empty");
	   return false;
	}
						
						
}
				
function validateForm() {
					
	var firstname = document.myForm.fname.value;
	if (firstname === "" || firstname === " ") {
		alert("First name is empty!");
							return false;
		}
						
		var middlename = document.myForm.middle.value;
		if (middle == "" || middle == " ") {
		   alert("Middle name is empty");
		   return false;
	    }
						
	 var lastname = document.myForm.lname.value;
	 if (lastname == "" || lastname == " ") {
		alert("Last name is empty");
		return false;
	 }
	}
    <!DOCTYPE html>
    <html>

	    <head>
		    <title>My form validation</title>
		
				
	</head>

		<body>
		
			<form name="myForm" action="fakeFormCheck.php" onsubmit="validateForm()" method="post">
				<fieldset>
					*First Name:
					<input type="text" name="fname">
					<br><br>
					
					Middle/Initial:
					<input type="text" name="middle">
					<br><br>
					
					*Last Name: 
					<input type="text" name="lname">
					<br><br>
					
					*Email: 
					<input type="text" name="email">
					<br><br>
					
					Phone:
					<input type="number" name="number">
					<br><br>
				</fieldset> 
				<br>
				
				<fieldset>
					*Reason:
					<select name="choice">
						<option value="Information">Infor reques</option>
						<option value="feedback">Feedback</option>
						<option value="other">Other</option>
					</select>
					<br><br>
					
					*Message: <br>
						<textarea name="message" rows="7" cols="30">
						</textarea>
				
				</fieldset>
				
				<input type="submit" value="Send">
				<input type="reset" value="Clear">
				
		
		
			</form>
			
		</body>
    </html>


    

3 个答案:

答案 0 :(得分:0)

尝试使用Javascript而不是inline-eval-HTML附加处理程序,并使用preventDefault来阻止默认表单提交。

<form name="myForm" action="fakeFormCheck.php" method="post">

document.querySelector('form[name="myForm"]').addEventListener('submit', (e) => {
  // do tests
  if (invalid) {
    // something is invalid, prevent the default action of submitting the form:
    e.preventDefault();
  }
  // else the form will submit by default
});

答案 1 :(得分:0)

preventDefault()添加到validateForm功能&amp;表单有效后返回true

function validateForm(e) {
  e.preventDefault();

  var firstname = document.myForm.fname.value;
  if (firstname === "" || firstname === " ") {
    alert("First name is empty!");
    return false;
  }

  var middlename = document.myForm.middle.value;
  if (middlename == "" || middlename == " ") {
    alert("Middle name is empty");
    return false;
  }


}
<form name="myForm" action="fakeFormCheck.php" onsubmit="validateForm(event)" method="post">
  <fieldset>
    *First Name:
    <input type="text" name="fname">
    <br><br> Middle/Initial:
    <input type="text" name="middle">
    <br><br> *Last Name:
    <input type="text" name="lname">
    <br><br> *Email:
    <input type="text" name="email">
    <br><br> Phone:
    <input type="number" name="number">
    <br><br>
  </fieldset>
  <br>

  <fieldset>
    *Reason:
    <select name="choice">
                    <option value="Information">Infor reques</option>
                    <option value="feedback">Feedback</option>
                    <option value="other">Other</option>
                </select>
    <br><br> *Message: <br>
    <textarea name="message" rows="7" cols="30">
                    </textarea>

  </fieldset>

  <input type="submit" value="Send">
  <input type="reset" value="Clear">



</form>

答案 2 :(得分:0)

使用onsubmit="validateForm()"中的return,例如onsubmit="return validateForm()"。第二件事是您在middlename变量中使用中间名,但是您使用其他一些变量进行检查if (middle == "" || middle == " ") {