Me gustaría añadir un «Reset» de control para el selector de fecha en la parte inferior del calendario – donde el «cierre» de control de la va. Esto permitiría que el usuario restablezca la entrada atado a datepicker en blanco (sin fecha).

Que no puedo averiguar cómo escribir la función de enlace, en concreto, ¿cómo puedo conseguir un asimiento del elemento enlazado el control?

        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();
                    }
                 )
           );
        }

OriginalEl autor KateYoak | 2011-02-07

6 Comentarios

  1. 21

    Aquí está la solución de trabajo, sólo tiene que llamar cleanDatepicker() antes de llamar a datepicker.

    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);
          }) ;
       }
    }
    Excelente solución… excepto que el botón de título es en polaco. También, me gustaría sugerir a poner esto en un (function(){})(); el programa de instalación, en lugar de crear una función con nombre y llamarlo más tarde.
    En orden para que esto funcione, usted tiene que configurar el selector de fechas opción showButtonPanel a la verdad.
    ¿Esta solución de trabajo para AJAXed botones, que es, hace que la solución de la causa AJAX enviar al servidor en claro?
    brillante respuesta. Gracias!

    OriginalEl autor pma_

  2. 15

    He encontrado una mejor solución:

    $(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('');
                    }
                }
        });
    });

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

    de la ventana.evento no está definido en Firefox.
    He encontrado una solución. BR, inputError

    OriginalEl autor vellotis

  3. 6

    Esto Agregará Un Botón De Borrado De Jquery Calendario De Que Se Desactive La Fecha.

     $("#txtDOJ").datepicker({
         showButtonPanel: true,
         closeText: 'Clear',
         onClose: function (dateText, inst) {
             if ($(window.event.srcElement).hasClass('ui-datepicker-close')) {
                 document.getElementById(this.id).value = '';
             }
         }
     });
    Buen truco, funciona
    No funciona en firefox

    OriginalEl autor sohaib

  4. 5
    1. Cambiar el Hecho de etiqueta para Borrar y agregar código para borrar

      $(document).ready(function () {
          $("#startdate").datepicker({
              showOn: 'both',
              buttonImageOnly: true,
              buttonImage: "css/images/calendar.gif",
              showButtonPanel: true,
              closeText: 'Clear',
              onClose: function (dateText, inst) {
                  $(this).val('');
              }
          });
      });
    2. Agregar botón Cancelar para el calendario

      $("#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);
          }
      });

    OriginalEl autor BehranG BinA

  5. 3

    Yo estaba pasando por el mismo problema, es decir, no hay ninguna opción disponible para vaciar el selector de fecha. Luego encontré esta super útil comentar con un dulce pedazo de código publicado aquí:

    Una forma rápida puede agregar la clara función incluso en leer sólo los campos es añadir el siguiente código a tu datepicker de control:

    }).keyup(function(e) {
        if(e.keyCode == 8 || e.keyCode == 46) {
            $.datepicker._clearDate(this);
        }
    });

    Esto permitirá a la gente a destacar (que incluso se puede Leer Sólo los campos) y, a continuación, utilizar la tecla retroceso o supr para quitar la fecha de la interna _clearDate función.

    Eso está bien si se ignora el móvil/tablet usuarios
    En mis pruebas, el uso de la tecla backspace como este en un campo readOnly activa el botón atrás en chrome e ie. Sin embargo, la eliminación de las grandes obras. Usted todavía consigue +1 porque la lectura sólo la funcionalidad no se parte de la pregunta.

    OriginalEl autor Leniel Maccaferri

  6. 0

    Aquí está la primicia

    Podemos utilizar por defecto el botón hecho para enlazar una costumbre función clara.

    $("#date_picker").datepicker({minDate:myDate,dateFormat: 'yy-mm-dd',showButtonPanel:true,closeText:'Clear',
        beforeShow: function( input ) {
            setTimeout(function() {
            var clearButton = $(input )
                .datepicker( "widget" )
                .find( ".ui-datepicker-close" );
            clearButton.unbind("click").bind("click",function(){$.datepicker._clearDate( input );});
            }, 1 );
        }
    }); 

    Funciona como un encanto. Saludos :);)

    créditos: Sébastien Renauld y BehranG BinA

    Renauld clara botón no estará disponible si shuffle meses. checkout enlace

    OriginalEl autor girish2040

Dejar respuesta

Please enter your comment!
Please enter your name here