繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM