2012-03-14 61 views
0

我已經實現jquery editortemplates.nowever datepicker.However但在某些查看頁面上,我需要添加onselect事件datepicker。日期選擇代碼jquery選擇視圖級別jquery datepicker模板沒有聲明datepicker

<script type="text/javascript"> 
    $(function() { 
     $('.dateofbirth').datepicker({ dateFormat: "dd/mm/yy" }); 
    }); 
</script> 

已被放在_layout.cshtml上。現在我不能觸發子頁面widout中的必要事件再次聲明datepicker元素。有沒有什麼辦法,我可以只點燃datepicker onselect方法,並在我自己的子頁面上執行一些操作,並且datepicker配置和初始化保留在_layout.cshtml上?

像這樣

視圖1:

$('#dob').datepicker({onSelect: function(dateText, inst) { /*Calculate Age*/ }}); 

查看2:

$('#addmonths').datepicker({onSelect: function(dateText, inst) { /*Calculate New maturity Date*/ }}); 

我只是不希望孩子頁面上再次redeclair爲#element的日期選擇器的元素。讓初始化由編輯器模板處理,但在子頁面上,我只想在沒有重新聲明的情況下根據需要調用onSelect方法。

有沒有反正我可以調用方法?

回答

0

嘗試使用「選項」 - 方法只設置一個選項。

$('#dob').datepicker('option', 'onSelect', function(dateText, inst) { /*Calculate Age*/ }); 

通過使用默認方式爲初始化 - 您的參數對象將默認值來extendet(在日期選擇器實現)並傳遞給init-方法。

http://jqueryui.com/demos/datepicker/#method-option

你甚至可以設置日期選擇系統範圍的默認值。 http://docs.jquery.com/UI/Datepicker/setDefaults

+0

你的意思是說它不會影響默認設置嗎?它實際上會使用onSelect事件函數擴展默認設置而不重新初始化datepicker? – Joy 2012-03-15 04:55:05

+0

對不起?如果使用'setDefaults',則可以更改默認值。如果您僅使用選項數組初始化輸入或添加一個選項,則只會擴展所選輸入的默認值。但是默認設置對於帶日期選擇器的其他輸入將保持不變。 – StilgarBF 2012-03-15 05:30:16

+0

哦,好吧,我知道了:)謝謝你的回答:) – Joy 2012-03-15 05:31:07

0

我已經在這裏得到了答案。如果我將默認設置爲日期選擇器,則將應用所有默認設置。但是,如果我必須選擇我們必須再次

$('#dob').datepicker({onSelect: function(dateText, inst) { /*Calculate Age*/ }}); 

它does not重新創建datepicker實際。它所做的是。如果有任何默認設置提供給日期選擇器。那些日期選擇器設置被應用,並且一旦它發現日期選擇器已經被初始化,則選擇的事件被附加到現有的日期選擇器。所以相反,日期選擇器不是重新創建,而只是附加選擇事件