2014-08-29 99 views
1

經過太多的搜索和搜索stackoverflow我的答案,我一直沒有成功。所以我很抱歉,如果這是重複的。在事件中更改jquery datetimepicker格式

我有一個只顯示時間的日期選擇器。我希望在changechange事件中切換軍事和標準時間。

我嘗試過這樣的一些感受:

function militarytoggle(element) 
{ 
    timetype = $("#military").val(); 
    if(timetype == "military") 
    { 
     $('.time').datetimepicker({ 
       timeOnly: true, 
       timeFormat: 'HH:mm' 
     }); 
    } 
    else if(timetype == "standard"){ 
     $('.time').datetimepicker({ 
       timeOnly: true, 
       timeFormat: 'hh:mm TT' 
     }); 
    } 
} 

編輯:我使用(當前工作)日期時間的方法呈現在文件準備:

$('.time').datetimepicker({ 
timeOnly: true, 
    dateFormat: '', 
    timeFormat: 'hh:mm TT' 
}); 

我只願更改事件的時間格式。

有人會認爲這會起作用,冗餘放在一邊。我在地球上做錯了什麼?

在此先感謝大家!

回答

1

一個你的if語句被寫成

if($(timetype == "military") 
其他

else if(timetype == "standard") 

首先,以前的那些有未閉合的括號。而且,一個使用$而另一個不使用。其中只有一個可以是正確的語法(我在後面想)。

同樣,您使用

$('.time').datepicker 
在一個地方

$('.time').datetimepicker 

在其他。同樣,只有其中一種可能是正確的使用方法。

編輯:從下面的評論說:

如果方法的DateTimePicker是一個構造函數,再次調用它的頁面已經創建可能不會真正改變現有的控制的格式後。

此外:

您應該檢查的文件(或源代碼,如果沒有良好的文檔)的日期時間選擇器窗口小部件,以查看是否有用於改變現有的控制的顯示格式的方法(或如果格式是公共屬性,則可以直接指定它)。如果沒有,那麼初始化兩個版本並隱藏一個版本可能是最好的方式,儘管你也可以回發到服務器,並且有一些服務器端代碼使用傳遞參數來渲染頁面datetimepicker設置爲所需的格式。

+0

這些都是錯別字,upvoted爲漁獲,不幸的是不是我的問題的解決方案:(:(儘管謝謝!)應該指出,我已經嘗試了以上每一個... – steve 2014-08-29 17:34:44

+0

@steve在這種情況下我想懷疑datetimepicker方法實際上並沒有做你認爲它的工作,你可以鏈接你正在使用什麼datetimepicker? – HamHamJ 2014-08-29 17:38:41

+0

編輯爲要求。再次感謝您的幫助! – steve 2014-08-29 17:40:58

0

我已經通過爲每個表單添加軍事和標準時間字段來解決此問題。然後,我切換禁用的屬性以及顯示CSS,而不是嘗試更改datetimepicker。

然後,我只是將datetime選擇器綁定到文檔準備就緒的所有字段。

function militarytoggle(element) 
{ 
    timetype = $("#military").val(); 
    if(timetype == "military") 
    { 
     $(".standard").prop("disabled",true).css("display","none"); 
     $(".military").prop("disabled",false).css("display","block"); 
    }else if(timetype == "standard"){ 
     $(".standard").prop("disabled",false).css("display","block"); 
     $(".military").prop("disabled",true).css("display","none"); 
    } 
} 

這看起來很不可靠,如果其他人有更清潔的解決方案,我會接受它作爲答案。