首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表单验证错误。重定向到错误页

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

Stack Overflow用户
提问于 2018-04-09 04:16:07
回答 3查看 107关注 0票数 2

所以我创建了一个表格。我试图使用JavaScript来验证字段。当我按submit键时,它什么也做不了。它只是把我送到一页上,上面写着“你的文件没有找到。”我确实意识到,代码主要是HTML而不是JS。我一直在测试,因为我要去,它已经不起作用了。任何帮助都是非常感谢的。

这是我的代码:

​

代码语言:javascript
复制
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;
	 }
	}
代码语言:javascript
复制
    <!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>

​

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-09 04:25:14

将preventDefault()添加到validateForm函数&在表单有效后返回true

​

代码语言:javascript
复制
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;
  }


}
代码语言:javascript
复制
<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>

​

票数 0
EN

Stack Overflow用户

发布于 2018-04-09 04:20:10

尝试将处理程序附加在Javascript中,而不是在内联eval中,并使用preventDefault来防止默认表单提交。

代码语言:javascript
复制
<form name="myForm" action="fakeFormCheck.php" method="post">

和

代码语言:javascript
复制
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
});
票数 0
EN

Stack Overflow用户

发布于 2018-04-09 04:26:58

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49725457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档