结束日期必须在开始日期之后(jquery为noobs)

时间:2009-11-30 18:41:41

标签: jquery validation date

我有一点时间围绕JQuery语法(可能是因为我的javascript开始时并不那么坚固)。这是我的问题。我在两个输入框上使用了datepicker(#ev_start#ev_end#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上设置注释的JQuery,但不是:

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

我希望有人可以解释这两个为什么以上不起作用,哪些会起作用以及为什么会这样做。

谢谢!

2 个答案:

答案 0 :(得分:2)

答案是在初始函数中修改#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}
                                }
                            });
});

答案 1 :(得分:0)

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