[英]How to validate data before button submit?
我有这段代码jsFiddle 。 我想要完成的是以下内容。 当用户单击对话框中的“确定”按钮时,我希望代码计算“ field1”的日期是否在“ field2”之后,这意味着当前时间段是在前一个时间段之后(应如此)。 如果是这样,我希望操作继续,填充文本框并关闭对话框。 每当不正确时,我都想提醒用户所做的选择是无效的(Previous不能在Current之后)。 我对日期数学没有任何问题(插件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()
基本上是正确的。 比较文件在这里 。
尽管有两点:
$("input#field1")
和#("input#field2")
将引用输入框,而不是对话框选择框。 您需要在将值分配给输入框之前进行验证,否则请关闭对话框,因为已分配值并不重要。 它应该去的位置(基于小提琴)是在单击“确定”按钮时调用的函数的开头。 现在看来,您正在处理当前日期并将值放在输入框中,然后处理上一个日期并分配值。 您需要先检查这些值是否在其他值之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.