gpt4 book ai didi

javascript - 如何在按钮提交之前验证数据?

转载 作者:行者123 更新时间:2023-11-28 02:37:24 25 4
gpt4 key购买 nike

我有这个代码jsFiddle 。我想要完成的任务如下。当用户单击对话框内的“确定”按钮时,我希望代码计算“field1”处的日期是否在“field2”之后,这意味着当前周期在前一个周期之后(应该如此)。如果是这样,我希望操作继续,填充文本框并关闭对话框。每当这不成立时,我想提醒用户所做的选择无效(上一个不能出现在当前之后)。我对日期数学没有问题(插件 date.js 使其变得足够简单),但在尝试找出在哪里包含此条件时遇到问题。任何帮助将不胜感激,请随意更改代码并在此处发布您的结果。谢谢。

我有一种感觉,代码应该在关闭对话框之前运行,但我无法获得正确的条件来实现这一点,例如:

//code up to here handles 'if's and 'else's
var currentPeriod = $("input#field1").val()
var previousPeriod = $("input#field2").val()

d1 = Date.parse(currentPeriod);
d2 = Date.parse(previousPeriod);

if((Date.compare(d1,d2))=='1')
{
$(this).dialog("close");
}
else
{
alert("Invalid date range");
}

最佳答案

您在上面写的内容,使用 Date.compare() 基本上是正确的。有关比较的文档是 here

不过有两点:

  • 该代码不在您放在一起的 fiddle 中的任何位置。
  • 在你的 fiddle 中,$("input#field1")#("input#field2")将指的是输入框,而不是对话框选择框。您希望在将值分配给输入框之前进行验证,否则您关闭对话框就没有关系,因为值已经分配了。

它应该去的地方(基于 fiddle )是在单击“确定”按钮时调用的函数的开头。现在看起来您正在处理当前日期并将值放入输入框中,然后处理前一个日期并分配值。在发生任何这种情况之前,您需要检查这些值是否在前一个。

关于javascript - 如何在按钮提交之前验证数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13278882/

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