Jeditable with jQuery UI Datepicker

前端 未结 5 770
借酒劲吻你
借酒劲吻你 2020-12-31 15:50

I need to have a click to edit element on a page, that will in turn invoke an instance of the jQuery UI Datepicker.

Currently, I\'m using JEditable to provide the i

相关标签:
5条回答
  • 2020-12-31 16:28

    Here is my solution. I use custom date format and on datepicker close, I reset the input form and apply cssdecoration (my jeditable improvement). Working with jQuery UI 1.5.2

    $.editable.addInputType('datepicker', {
    element : function(settings, original) {
        var input = $('<input>');
        if (settings.width  != 'none') { input.width(settings.width);  }
        if (settings.height != 'none') { input.height(settings.height); }
        input.attr('autocomplete','off');
        $(this).append(input);
        return(input);
    },
    plugin : function(settings, original) {
        /* Workaround for missing parentNode in IE */
        var form = this;
        settings.onblur = 'ignore';
        $(this).find('input').datepicker({
            firstDay: 1,
            dateFormat: 'dd/mm/yy',
            closeText: 'X',
            onSelect: function(dateText) { $(this).hide(); $(form).trigger("submit"); },
            onClose: function(dateText) {
                original.reset.apply(form, [settings, original]);
                $(original).addClass( settings.cssdecoration );
                },
        });
    }});
    
    0 讨论(0)
  • 2020-12-31 16:29

    I had the same problem. Searching inside the sourcecode of http://www.appelsiini.net/projects/jeditable/custom.html brought me to the solution.

    There is a "jquery.jeditable.datepicker.js". Putted this in my code an added a new function "datepicker" (also in the source).

    I don't know how your script works but in my case the function additionally needs:

    id : 'elementid',

    name : 'edit'

    to store the data in the database.

    hth :)

    dabbeljuh

    0 讨论(0)
  • 2020-12-31 16:35

    I took a look at the sourcecode mentioned above, but it seemed to be a bit buggy. I think it might have been designed for an older version of the datepicker, and not the jQuery UI datepicker. I made some modifications to the code, and with changes, it at least appears to be working in Firefox 3, Safari 4, Opera 9.5, and IE6+. Still might need some more testing in other browsers.

    Here is the code I used (held in a file named jquery.jeditable.datepicker.js)

    $.editable.addInputType('datepicker', {
        element : function(settings, original) {
            var input = $('<input>');
            if (settings.width  != 'none') { input.width(settings.width);  }
            if (settings.height != 'none') { input.height(settings.height); }
            input.attr('autocomplete','off');
            $(this).append(input);
            return(input);
        },
        plugin : function(settings, original) {
            /* Workaround for missing parentNode in IE */
            var form = this;
            settings.onblur = 'ignore';
            $(this).find('input').datepicker().bind('click', function() {
                $(this).datepicker('show');
                return false;
            }).bind('dateSelected', function(e, selectedDate, $td) {
                $(form).submit();
            });
        }
    });
    

    Example Implementation Code:

    $(".datepicker-initiative").editable('inc/ajax/saveInitiative.php', {
         type: 'datepicker',
         tooltip: 'Double-click to edit...',
         event: 'dblclick',
         submit: 'OK',
         cancel: 'Cancel',
         width: '100px'
    });
    
    0 讨论(0)
  • 2020-12-31 16:53

    Here is my solution, but isn't a complete jeditable input type.

    $.editable.addInputType('date', {
        element : function(settings, original) {
            var input = $('<input type="text" readonly="readonly" name="value" size="10 />');
            $(this).append(input);
            return(input);
        },
        plugin : function(settings, original) {
            var form = this;
            settings.onblur = 'cancel';
            $(this).find('input').datepicker({
                dateFormat: 'yy-mm-dd',
                onSelect: function(dateText) { $(this).hide(); $(form).trigger("submit"); },
                onClose: function(dateText) { $(this).hide(); $(form).trigger("submit");}
            });            
        },
        submit  : function(settings, original) { },
        reset   : function(settings, original) { }
    });
    
    0 讨论(0)
  • 2020-12-31 16:54

    The jeditable-datepicker plugin seems to do exactly what you need.

    It enables jQuery UI Datepicker in Jeditable. Here's the demo.

    0 讨论(0)
提交回复
热议问题