0

我有这个页面,我正在尝试确认来自输入文本字段的日期与当前日期。如果输入字段中的日期晚于当前日期,则需要弹出确认框以确认他们输入了正确的日期。所以“确定”按钮需要完成提交数据,“取消”按钮需要将它们返回到 AJAX 表单。

if($('sdate' > curdate)) {
    confirm("The date you chose " + curdate + "is in the future OK to continue");
}

我还希望'sdate'出现在确认框中而不是curdate,但是每当我尝试该表单不再出现时。

4

4 回答 4

2

代替

$('sdate' > curdate)

你可能想要

$('sdate').val() > curdate

这是日期的比较(作为字符串,但如果日期格式正确,它应该可以工作,例如日期类型的输入或带有标准插件的文本类型的输入)。

请注意,您不使用确认调用的返回值。你通常会做类似的事情

if ($('sdate').val() > curdate) {
    if (confirm("someText")) {
        // do something
    }
}
于 2013-05-01T13:45:27.460 回答
1

你需要这样做:

var date1 = new Date($('#sdate').val());
var date2 = new Date(curdate);
if (date1 > date2 ) {
    confirm("The date you chose " + curdate + "is in the future OK to continue");
}
  • 元素未完全包裹。应该是这样的$('#sdate')
  • '#' 表示缺少的 id。不确定,如果它是一个 id 或类。如果是类,添加一个“。” 代替#
于 2013-05-01T13:50:24.947 回答
0

在您当前的脚本中,confirm() 调用实际上并没有做任何事情。

无论您尝试做什么,都需要以某种形式合并以下内容。

if(confirm("The date you chose " + curdate + "is in the future OK to continue"))
    //Do stuff

根据您发布的内容和您可能正在寻找的@dystroy 发布的答案

if($("#sdate").val() > curdate && confirm("The date you chose " + curdate + "is in the future OK to continue")
    //Do stuff

在上面的脚本中,两个条件都存在于一个条件中。根据@dystroy 的回答,我已经包含了 .val() 调用。另一个变化是假设您正在寻找 id="sdate" 的元素,因此选择器包含 id 符号 #

编辑(在 OP 的评论之后)-根据这个 stackoverflow 帖子更新

如果您试图阻止表单提交,那么您应该以类似于此的方式将该函数附加到表单

<form name="myForm" onsubmit="return validateMyForm();"> 

绑定事件后,您可以将代码更新为类似

if($("#sdate").val() > curdate && confirm("The date you chose " + curdate + "is in the future OK to continue")
    return true;
else
    return false;

仅当确认返回 true 并且满足日期不等式时,才应提交表单。

于 2013-05-01T13:52:16.240 回答
0

我能够让它与它一起工作

var d=$('sdate').value;

if(d > curdate)) {

  var dates confirm("The date you chose " + d + "is in the future OK to continue");
  if(!dates) return false;
}
于 2013-05-02T01:36:26.783 回答