在提交该页面之前检查表单字段值

时间:2010-07-19 08:57:47

标签: javascript html ajax jsp

我编写了以下函数,用于检查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>

提前致谢

4 个答案:

答案 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();"