我编写了以下函数,用于检查start_date字段是否为空,并在单击提交按钮时显示正确的消息。但随后它将控制权转移到上一页。因此,用户必须再次写入该表单上的所有其他字段。 即使在提示错误消息后,是否有任何方法可以保留该页面,并且所有其他字段都值。
//JavaScript
function checkform() {
if(document.frmMr.start_date.value == "") {
alert("please enter start_date");
return false;
} else {
document.frmMr.submit();
}
}
// HTML
<html>
<form name=frmMr action="page1.jsp">
Enter Start date:
<input type="text" size="15" name="start_date" id="start_date">
<input type="submit" name="continue" value="submit" onClick="checkform();">
</form>
</html>
提前致谢
答案 0 :(得分:19)
虽然checkform中有返回值,但它并未在任何地方使用 - 请尝试使用onclick="return checkform()"
。
您可能需要考虑使用表单标记中的onsubmit="return checkform()"
替换此方法,但两者都可用于单击按钮。
答案 1 :(得分:6)
您只需使用
创建所需的start_date即可<input type="submit" value="Submit" required />
你甚至不需要checkform()。
由于
答案 2 :(得分:0)
不确定,但听起来它还在提交。我快速解决方案是改变你的(猜测你的代码):
<input type="submit" value="Submit" onclick="checkform()">
到按钮:
<input type="button" value="Submit" onclick="checkform()">
这样你的表单仍然会被提交(来自checkform()的else部分)并且它不应该重新加载页面。
还有其他一些可能更好的处理方式,但这在同一时间有用。
答案 3 :(得分:0)
在调用函数之前使用return,当你单击提交按钮时,会发生两个事件(表单发布,因为你使用了提交按钮和函数调用onclick),为了防止表单发布你必须返回false,你已经做到了,你还必须指定回报,即期望函数的值,
这是一个代码:
input type="submit" name="continue" value="submit" onClick="**return** checkform();"