gpt4 book ai didi

javascript - 如果验证失败则停止表单提交。

转载 作者:搜寻专家 更新时间:2023-11-01 04:48:56 25 4
gpt4 key购买 nike

我正在验证以下函数中的日期。如果验证失败,则不应提交表单。我尝试在表单 onsubmit 中返回 false,但它仍然被提交。但是,验证工作正常并收到我放入函数中的警报。如果验证失败,任何停止提交表单的帮助。

<script>
function dateCheck()
{
start = document.getElementById('name3').value;
end = document.getElementById('name4').value;
compare(start, end);
document.getElementById('name4').focus();

}

function compare(sDate, eDate)
{

function parseDate(input) {
var parts = input.match(/(\d+)/g);

return new Date(parts[2], parts[0]-1, parts[1]); // months are 0-based
}
var parse_sDate = parseDate(sDate);
var parse_eDate = parseDate(eDate);
parse_sDate.setFullYear(parse_sDate.getFullYear() + 1);

if(parse_eDate >= parse_sDate)
{
alert("End date should not be greater than one year from start date");
return false;
}
return true;
}

</script>
</head>
<body>
<form onsubmit="return dateCheck()">
<table>
<tr>
<td><input type="text" name="soname3" id="name3" size="15" readonly="readonly">
<img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name3','MMddyyyy','dropdown',false,'12')" /></td>
<td><input type="text" name="soname4" id="name4" size="15" readonly="readonly">
<img src="../Image/cal.gif" id="" style="cursor: pointer;" onclick="javascript:NewCssCal('name4','MMddyyyy','dropdown',false,'12'); " /> </td>
</tr>
</table>
<input type="submit" value="Submit">
</form>

最佳答案

只是评论:

如果您的监听器传递对表单的引用,您可以通过名称或 ID 访问控件:

<form onsubmit="return dateCheck(this)">

然后:

function dateCheck(form) {
var start = form.name3.value;
...
}

请注意,您应该声明变量,否则它们将在分配给它们的位置变成全局变量。此外,您应该在将控件中的值传递给比较函数之前检查它们(如果不是,则显示一条消息,要求用户输入有效值)。

function dateCheck(form) {
var start = form.name3.value;
var end = form.name4.value;
var valid = compare(start, end);

if (!valid) form.name4.focus();

return false;
}

关于javascript - 如果验证失败则停止表单提交。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17646471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com