如何获取jquery datepicker的所有选项来实例化具有相同选项的新datepicker?

时间:2013-07-18 15:33:12

标签: javascript jquery datepicker

如何获取jquery datepicker的所有选项以使用相同的选项实现新的datepicker?

我想克隆一个包含2个不同选项的日期选择器的表。您可以在此处看到一个示例:http://jsfiddle.net/qwZ5x/4/

<div class="clonable">
<table><tr><td>
<input type="text" id="datepicker" />

<script>
    jQuery(document).ready(function() {
        jQuery("#datepicker").datepicker({
            showOn: "both",
            buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
        });
    });
</script></td><td>
<input type="text" id="datepicker2" />
<script>
    jQuery(document).ready(function() {
        jQuery("#datepicker2").datepicker();
    });
</script>
    </td></tr></table>
</div>
<a href="javascript:void(0);" id="clone">Clone</a>
var id = 0;
jQuery("#clone").on("click", function () {

var clonable = jQuery(".clonable:first").clone(true, true);
jQuery(clonable).find("input").each(function () {
    jQuery(this).attr("id", jQuery(this).attr("id") + "_" + id);

    jQuery(this).siblings('.ui-datepicker-trigger,.ui-datepicker-apply').remove();

    jQuery(this).removeClass('hasDatepicker');
    jQuery(this).datepicker({
        showOn: "both",
        buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
    });
});

jQuery(clonable).insertBefore("#clone");
id = id + 1;
});

如何在没有设置选项的情况下将所有选项设置为克隆的datepicker?

非常感谢。

2 个答案:

答案 0 :(得分:12)

您可以使用以下方法获取现有日期选择器的选项:

var options = jquery('#datepicker').datepicker('option', 'all');

获取一个特定选项,例如numberOfMonths:

var numberOfMonths = jquery('#datepicker').datepicker('option', 'numberOfMonths');

答案 1 :(得分:0)

在您的特定情况下,请替换它:

jQuery(this).datepicker({
    showOn: "both",
    buttonImage: "http://jqueryui.com/resources/demos/datepicker/images/calendar.gif"
});

......用这个:

jQuery(this).datepicker(jQuery(this).datepicker('option', 'all'));

以下是改变的问题:http://jsfiddle.net/puAde/

这是有效的,因为您已经克隆了包含选项的输入元素,但是需要将它们重新应用到新实例。

请注意,您需要传递'all'才能获取当前选项(jQuery文档错误)。