JQuery datePicker日期重置

Kat*_*oak 13 jquery date datepicker reset jquery-ui-datepicker

我想在日历底部的日期选择器中添加一个"重置"控件 - "关闭"控件的位置.这将使用户能够将与datepicker绑定的输入重置为空白(无日期).

我无法弄清楚如何编写绑定函数,具体来说,我如何获取绑定到控件的元素?

        if (this.displayClear) {
           $pop.append(
              $('<a href="#" id="dp-clear">' + $.dpText.TEXT_CLEAR + '</a>')
                 .bind(
                    'click',
                    function()
                    {
                          c.clearSelected();
                          //help! reset the value to '': $(this.something).val('')
                          c._closeCalendar();
                    }
                 )
           );
        }
Run Code Online (Sandbox Code Playgroud)

pma*_*ma_ 21

这是工作解决方案,只需在调用datepicker之前调用cleanDatepicker().

function cleanDatepicker() {
   var old_fn = $.datepicker._updateDatepicker;

   $.datepicker._updateDatepicker = function(inst) {
      old_fn.call(this, inst);

      var buttonPane = $(this).datepicker("widget").find(".ui-datepicker-buttonpane");

      $("<button type='button' class='ui-datepicker-clean ui-state-default ui-priority-primary ui-corner-all'>Delete</button>").appendTo(buttonPane).click(function(ev) {
          $.datepicker._clearDate(inst.input);
      }) ;
   }
}
Run Code Online (Sandbox Code Playgroud)

  • 为了使其工作,您必须将日期选择器选项 showButtonPanel 设置为 true。 (2认同)

vel*_*tis 18

我找到了一个更好的解决方案:

$(document).ready(function () {
    $(".datepicker").datepicker({
            showOn: 'focus',
            showButtonPanel: true,
            closeText: 'Clear', // Text to show for "close" button
            onClose: function () {
                var event = arguments.callee.caller.caller.arguments[0];
                // If "Clear" gets clicked, then really clear it
                if ($(event.delegateTarget).hasClass('ui-datepicker-close')) {
                    $(this).val('');
                }
            }
    });
});
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/swjw5w7q/1/


soh*_*aib 7

这将在将清除日期的Jquery日历上添加清除按钮.

 $("#txtDOJ").datepicker({
     showButtonPanel: true,
     closeText: 'Clear',
     onClose: function (dateText, inst) {
         if ($(window.event.srcElement).hasClass('ui-datepicker-close')) {
             document.getElementById(this.id).value = '';
         }
     }
 });
Run Code Online (Sandbox Code Playgroud)


Beh*_*inA 6

  1. 将完成标签更改为清除并添加要清除的代码

    $(document).ready(function () {
        $("#startdate").datepicker({
            showOn: 'both',
            buttonImageOnly: true,
            buttonImage: "css/images/calendar.gif",
            showButtonPanel: true,
            closeText: 'Clear',
            onClose: function (dateText, inst) {
                $(this).val('');
            }
        });
    });
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将取消按钮添加到日历

    $("#termdate").datepicker({
        showOn: 'both',
        buttonImageOnly: true,
        buttonImage: "css/images/calendar.gif",
        showButtonPanel: true,
        beforeShow: function (input) {
            setTimeout(function () {
                var buttonPane = $(input).datepicker("widget")
                    .find(".ui-datepicker-buttonpane");
                var btn = $('<button class="ui-datepicker-current'
                    + ' ui-state-default ui-priority-secondary ui-corner-all"'
                    + ' type="button">Clear</button>');
                btn.unbind("click").bind("click", function () {
                    $.datepicker._clearDate(input);
                });
                btn.appendTo(buttonPane);
            }, 1);
        }
    });
    
    Run Code Online (Sandbox Code Playgroud)