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

次のように、テキストフィールドの以前の値を変数に保存し、それに応じて作業できます。

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. 入力フィールドの onclick で、div を表示します。表示する前に、入力フィールドの日付 (存在する場合) を datepicker div にコピーしてください。
  3. その後、それに応じて日付を選択でき、入力フィールドの日付は変更されません。
  4. 必要な日付を取得したら、送信ボタンをクリックし、日付ピッカーの日付を入力フィールドに割り当てて、div を非表示にします。
于 2012-08-07T07:53:27.823 に答える