jquery datepicker onselect没有开火

时间:2010-12-07 00:23:04

标签: asp.net jquery jquery-validate

我有2个输入框用于输入开始日期和结束日期。我需要验证开始日期是否早于结束日期。我有以下代码来验证,但代码似乎没有触发时我附加了datepicker控件的onselect事件。有人可以告诉我我做错了吗?

<script language="javascript" type="text/javascript">
       $(document).ready(function() {
           $(".date").datepicker({
           onSelect:function(dateText,inst){

           var startDate=new Date($("#_createDateFromInput").val());
           var endDate=new Date($("#_createDateToInput").val());
           if(startDate!=""&&endDate!="")
            {
                if(startDate>endDate)
                {
                    alert("End date cannot be earlier than start date");
                }
             }

          }

       });});
   </script>

谢谢!

上面的标记是(这是在asp.net中):

<label>Date From</label> 
<input class="date" runat="server"  id="_createDateFromInput" />
<label id="to">To</label>
<input class="date" runat="server"  id="_createDateToInput"  />
我相信El Ronnoco已经锁定了某些东西......我注意到当我删除runat =“server”标签时,我能够解除偶数...但是现在我面对另一个 在回发期间(即当用户最终提交时)检索值的问题..任何人有想法吗?

3 个答案:

答案 0 :(得分:0)

实现此目的的一种更简单的方法是防止用户为endDate选择较早的日期。

这可以通过使用Datepicker插件的minDate选项

来完成
$("#startDate").datepicker({
    onSelect:function(dateText,inst){
        $( "#endDate" ).datepicker( "option", "minDate", new Date(dateText) );
    }
});

答案 1 :(得分:0)

我在jQuery UI示例页面中使用此代码:http://jqueryui.com/demos/datepicker/#event-search

基本上它需要2个输入,使它们成为日期选择器,然后选择限制注意力和最大日期。这是一段非常聪明的代码。

$(function() {
    var dates = $( "#from, #to" ).datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 3,
        onSelect: function( selectedDate ) {
            var option = this.id == "from" ? "minDate" : "maxDate",
                instance = $( this ).data( "datepicker" );
                date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat,
                    selectedDate, instance.settings );
            dates.not( this ).datepicker( "option", option, date );
        }
    });
});

答案 2 :(得分:0)

感谢大家的所有输入。我使用了很多你写下来的东西。由于某种原因,我有能力使runat="server"属性导致jquery的各种问题。我不得不删除标记并使用页面中固有的请求对象访问它。对于那些对语法感兴趣的人:

request.form["startDate"].tostring();

其中startdate是该字段的属性名称值。