我正在尝试使用 JavaScript 验证表单。文本字段嵌入在表行中。留下空白表格行以显示警告(例如“不能为空”)。当我在 onsubmit 上调用 validateForm() 方法时,警告出现在表行中并消失。当我第二次按下按钮时,警告保留在 html 页面上。我不知道发生了什么。
function validateForm() {
var warnmsg = checkNames();
document.getElementById("row1").innerHTML = warnmsg;
}
function checkNames() {
var fname = document.getElementById("fname");
if (fname.value.length==0)
return "Cannot be left blank";
else
return "";
}
最佳答案
您必须返回 false 才能使页面不离开。
function validateForm()
{
var warnmsg = checkNames();
document.getElementById("row1").innerHTML = warnmsg;
return !warnmsg.length >0;//if there is a warning message, return false
}
然后在您的表单中:
onsubmit="return validateForm()"
这是我的测试页面
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script>
function validateForm()
{
var warnmsg = checkNames();
document.getElementById("row1").innerHTML = warnmsg;
return !warnmsg.length >0;
}
function checkNames()
{
var fname = document.getElementById("fname");
if (fname.value.length==0)
return "Cannot be left blank";
else
return "";
}
</script>
</head>
<body>
<form onsubmit="return validateForm()">
<p id="row1"></p>
<input type="text" id="fname" />
<input type="submit" />
</form>
</body>
</html>
关于javascript - 第二次单击时表行更新。表单验证 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12719090/