【发布时间】:2015-05-03 14:39:12
【问题描述】:
当我在 chrome 上运行我的代码并尝试一次输入每个输入时,当我点击提交时,我的所有输入都会被清除!请帮帮我
Javascript 代码:
function data_validation()
{
var sfn = form1.sfn.value;
var sln = form1.sln.value;
var sid = form1.sid.value;
var grad = form1.grad.value;
var RegExpText = /^[A-Z a-z]+$/;
var RegExpId = /^[0-9]{6}$/;
if (!RegExpText.test(sfn))
{
alert("Please enter your first name");
document.form.sfn.focus();
document.form.sfn.select();
return false;
}
else if(!RegExpText.test(sln))
{
alert("Please enter your last name");
document.form.sln.focus();
document.form.sln.select();
return false;
}
else if(!RegExpId.test(sid))
{
alert("Please enter a 6-digit Student ID");
document.form.sid.focus();
document.form.sid.select();
return false;
}
grad = -1;
for(i=0;i<document.client.grad.length; i++)
if(document.client.grad[i].checked)
{
grad = i;
var gradYear = document.client.grad[i].value;
}
if(grad == -1)
{
alert("Please select a grade level.");
return false;
}
else if ((form1.php.checked == "") && (document.client.js.checked == "") && (document.client.c.checked == ""))
{
alert("Please select at least one programming language.");
form1.php.focus();
return false;
}
else
{
alert("Thank you for submitting!");
return true;
}
}
这是 HTML:我尝试将 return false 添加到 onSubmit 并且我还尝试了许多其他的东西。我的老师从来没有教过这个,我在网上找不到其他适合我的答案。
<!DOCTYPE html>
<html>
<head>
<link href="../common/stylesheet.css" type="text/css" rel="stylesheet">
<script type = "text/javascript" src="../common/validate.js"> </script>
<meta charset="utf-8">
<title>Form Validation</title>
</head>
<body>
<div id="container"><!-- Start wrapper -->
<div id="form_data">
<form name = "form1" id = "form1" onsubmit = "return data_validation();" method="post">
<table id="tbl_form_input">
<tr>
<td colspan="2">
<h1 style="text-align:center;">Student Skills Form</h1>
</td>
</tr>
<tr>
<td class="label">Student First Name:</td>
<td><input name="sfn" size="20" ></td>
</tr>
<tr>
<td class="label">Student Last Name:</td>
<td><input name="sln" size="20" ></td>
</tr>
<tr>
<td class="label">Student ID:</td>
<td><input name="sid" size="6" maxlength="6"></td>
</tr>
<tr>
<td class="label">Programming Languages</td>
<td>
<input type="checkbox" value="PHP" name="php">PHP<br />
<input type="checkbox" value="JS" name="js">JavaScript<br />
<input type="checkbox" value="C++" name="c">C++
</td>
</tr>
<tr>
<td class="label">Expected Date of Graduation:</td>
<td>
<input type="radio" name="grad" value="2015">2015<br />
<input type="radio" name="grad" value="2016">2016<br />
<input type="radio" name="grad" value="2017">2017<br />
<input type="radio" name="grad" value="2018">2018</td>
</tr>
<tr>
<td colspan="2" style="text-align:center;">
<input type="submit" name="s" value="Send Data">
<input type="reset" name="r" value="Clear Data">
</td>
</tr>
</table>
</form>
</div><!-- End form_data id formats -->
</div> <!-- end wrapper -->
</body>
</html>
【问题讨论】:
-
您没有为表单指定
action,因此它会发布到当前 URL,然后重新加载页面。
标签: javascript html forms