【问题标题】:End date must be after start date (jquery for noobs)结束日期必须晚于开始日期(jquery for noobs)
【发布时间】:2009-11-30 18:41:40
【问题描述】:

我正忙着研究 JQuery 语法(可能是因为我的 javascript 一开始就不是那么可靠)。这是我的问题。我在两个输入框(#ev_start#ev_end)上使用 datepicker,#ev_end 必须出现在 #ev_start 之后。

HTML

Event Start <input type='text' name='ev_start' id='ev_start'/>
Event End   <input type='text' name='ev_end' id='ev_start'/>

有效的jQuery

$(document).ready(function(){
    //DATE/TIME INFO
    $.datepicker.setDefaults({ dateFormat: 'yy-mm-dd', firstDay: 1  });

    $(function() {
        $("#ev_start").datepicker({showOn: 'button', 
                                   buttonImage: 'images/jquery_ui/calendar.gif', 
                                   buttonImageOnly: true
                                 });
    });

    $(function() {//display Calendar
        $("#ev_end").datepicker({showOn: 'button', 
                                 buttonImage: 'images/jquery_ui/calendar.gif', 
                                 buttonImageOnly: true
                                });
});

应该在 ev_end 的 datepicker 上设置 mindate 的 JQuery,但没有:

$("#ev_start").live('blur',
                    function(){
                      $('#ev_end').datepicker('option', 'minDate', $('#ev_start').datepicker( 'getDate' ))
                    });//inside the $(document).ready(function())

我希望有人可以解释两者为什么上述方法不起作用以及什么会起作用以及为什么。

谢谢!

【问题讨论】:

  • 有一件事,可能是错字,但您可能需要以$("#ev_start") 开头,而不是$("ev_start")
  • 好眼力!我已经修正了错字
  • 但很遗憾,错字不是问题。

标签: jquery validation date


【解决方案1】:

答案是在初始函数中修改#ev_end的日期选择器:

$(function() {//display Calendar
    $("#ev_end").datepicker({showOn: 'both', 
                             buttonImage: 'images/jquery_ui/calendar.gif', 
                             buttonImageOnly: true,
                             beforeShow: function() { 
                                var d=$("#ev_start").datepicker('getDate');
                                if(d) return {minDate: d}
                                }
                            });
});

【讨论】:

    【解决方案2】:

    你不能用一些 jQuery 内置方法来做到这一点。这是一种可能的解决方案,可以让您自己检查。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多