0
$( ".datepicker_1" ).datepicker({
            numberOfMonths: 2,
            showButtonPanel: false,
            minDate: new Date('<?php echo $st_date_sh.' '.$st_month_sh.', '.$st_year_sh?> 00:00:00'),   //line 88
            maxDate: new Date('<?php echo $en_date_sh.' '.$en_month_sh.', '.$en_year_sh?> 12:00:00'),   //line 88           
            showOn: "button",
            buttonImage: "images/Cal.gif",
            buttonImageOnly: true,
            /*beforeShowDay:function(dt){
                return [(dt.getDay()==0)?false:true];
            },*/
            onSelect: function(dateText, inst) {
                var dt_txt = dateText.replace('-','/');
                dt_txt = dt_txt.replace('-','/');
                var tmp_dt =  new Date(dt_txt);
                if(tmp_dt.getDay()==0)
                {
                    if(confirm("Are you certain you want to assign Sunday delivery date?"))
                    {
                        //$(this).closest("tr").find(".update_quote_row").click();
                    }
                    else
                    {
                        return false;
                    }
                }
            }

        });

我想要做的是,如果用户尝试选择星期日,则应显示确认,并且仅在确认选择后才会填充相关的文本字段。但是,使用我的代码,无论我确认还是取消,文本字段都会更改为所选值,我需要防止这种情况发生。我也不能简单地将输入字段设置为空白,因为如果用户取消确认,可能存在不应修改的现有值。

4

2 回答 2

0

您可以将 textfield 的先前值存储在某个变量中并相应地工作,例如:

var prevVal = $.trim( $("input.datepicker_1").val() );
$( ".datepicker_1" ).datepicker({
    numberOfMonths: 2,
    showButtonPanel: false,
    ......
    onSelect: function(dateText, inst) {
         var dt_txt = dateText.replace('-','/');
         dt_txt = dt_txt.replace('-','/');
         var tmp_dt =  new Date(dt_txt);
         if(tmp_dt.getDay()==0) {
           if(confirm("Are you certain you wa...")) {
              return true;
           }
           else {
              //show previous value
              $(".datepicker_1").val(prevVal);
           }
          .........
于 2012-08-07T07:57:41.970 回答
0

这是一个想法:

  1. 将您的日期选择器分配给一个 div。请参阅http://jqueryui.com/demos/datepicker/#inline中的“显示内联”示例
  2. 单击输入字段,显示 div。确保在显示之前将输入字段中的日期(如果存在)复制到 datepicker div
  3. 然后您可以相应地选择您的日期,并且输入字段中的日期不会改变。
  4. 获取所需日期后,单击提交按钮并将日期选择器上的日期分配给输入字段并隐藏 div。
于 2012-08-07T07:53:27.823 回答