2013-07-18 46 views
4

如何获得jquery datepicker的所有选项来实现具有相同选项的新datepicker?如何获得jQuery的日期选择器的所有选项来instanciate新的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; 
}); 

我怎么可以由一个组,不设置选项一个所有选项来克隆日期选择器?

非常感谢。

回答

9

您可以使用此获得现有的日期选择器的选项:

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

得到一个特定的选项,例如NUMBEROFMONTHS:

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

在您的特定情况下,更换这样的:

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

...与此:

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

下面是与变化的jsfiddle:http://jsfiddle.net/puAde/

这工作,因为你已经克隆了输入元素,其持有的选项,但他们需要重新应用到新的实例。

请注意,您需要通过'all'以获取当前选项(jQuery文档错误)。

相关问题