我有Datepicker,并且please check jsfiddle here正常工作。
我也有Jinplace JQuery plugin,并且please check jsfiddle here也能正常工作。
但是我不能让他们一起工作,我的意思是将datepicker放在可编辑的jinplace div please check jsfiddle here中。

码:

$('.editable').jinplace({
});
$.fn.jinplace.editors.birthday = {
    makeField: function(element, data) {
        // Create a label with a checkbox inside it.
        var input = $('<input id="datepicker">');
        return input;
    }
};
$(function() {
        $( "#datepicker" ).datepicker({
            yearRange: "1900:2016",
            dateFormat: "yy-mm-dd",
            changeYear: true
        });
    });


在这种情况下,Jinplace生成如下的HTML代码:

<div class="editable" data-type="birthday">
<form action="javascript:void(0);" style="display: inline;">
<input id="datepicker2">
</form>
</div>


但是,仅在单击div.editable之后,input#datepicker才会在HTML中显示,并且在单击之前尚未在html代码中列出。像这样:

<div class="editable" data-type="birthday">
</div>


请检查上面的jsfiddle链接以获取更多信息。
我如何让他们一起工作?

最佳答案

这是因为初始化日期选择器时您的输入不存在。您将需要进行datepicker调用,此代码为:

$( "#datepicker" ).datepicker({
        yearRange: "1900:2016",
        dateFormat: "yy-mm-dd",
        changeYear: true
});


一旦使用jinplace将输入呈现到dom上。

就jinplace的文档而言,我找不到一个onload事件,因此,不幸的是,我不确定该如何处理。但是查看源代码和您的示例,这可能会起作用:

$.fn.jinplace.editors.birthday = {
    makeField: function(element, data) {
        // Create a label with a checkbox inside it.
        var input = $('<input id="datepicker">');
        return input;
    },
    activate: function (form, field) {
       field.datepicker({
            yearRange: "1900:2016",
            dateFormat: "yy-mm-dd",
            changeYear: true
       });
       field.focus();
    },
};


我还没有测试。祝好运!

08-08 07:48