2017-05-04 64 views
0

我想定義一個日期輸入字段與兩個ALT日期顯示字段,他們都有不同的日期格式。在下面的例子中,如果我的日期輸入是013017然後我希望我的ALT日期顯示字段以顯示jQuery UI datepicker與多個altField和altFormat

顯示器1:二零一七年一月三十零日

顯示器2:17年1月30日

但不是我越來越

顯示1:2017年1月30日,17年1月30日

顯示2:2017年1月30日, 17年1月30日

這裏是我的標記:

<p>Date Input: <input type="text" id="datepicker1"> </p> 
<p>Display 1: <input type="text" id="alternate1" size="30"> </p> 
<p>Display 2: <input type="text" id="alternate2" size="30"> </p> 

這裏是我的JS:

$(function() {  
    $("#datepicker1").datepicker({ 
     dateFormat: "mmddy", 
     altField: "#alternate1, #alternate2", 
     altFormat: "yy-mm-dd, mm-dd-y" 
    });  
}); 

這裏是一個的jsfiddle:https://jsfiddle.net/5rqtj056/

+0

'altFormat'需要一個格式字符串和格式化selecte d日期。 'altField'需要一個jQuery選擇器,因此可以使用多個控件。如果您想格式化第二個控件,則需要在日期選擇器選項之外進行操作。 – Kramb

回答

1

altFormat屬性接受一個格式日期,用於表示由altField選擇器檢索的元素。 這從jQuery UI的官方文檔片段

altFormat 

Type: String 
Default: "" 
The dateFormat to be used for the altField option. This allows one date format to be shown to the user for selection purposes, while a different format is actually sent behind the scenes. For a full list of the possible formats see the formatDate function 

爲了做到這一點,你需要綁定在#alternate1例如事件和填充的那一個,你會轉換日期,然後填寫#alternate2

這裏您新的JS代碼:

$(function() { 

    $("#datepicker1").datepicker({ 
    dateFormat: "mmddy", 
    altField: "#alternate1", 
    altFormat: "yy-mm-dd", 
    onSelect: function(dateText) { 
     $('#alternate1').trigger("change"); 
    } 
    }); 

    $("#alternate1").change(elaborateDate); 
    $("#datepicker1").keyup(elaborateDate); 

    function elaborateDate() { 
    var alt1Date = $('#alternate1').val(); 
    var newDate = $.datepicker.formatDate("mm-dd-y", new Date(alt1Date)); 
    $('#alternate2').val(alt1Date); 
    } 

}); 

https://jsfiddle.net/5rqtj056/8/

+0

看起來像這樣只有在使用日曆界面選擇日期時纔有效。它不工作,如果我輸入013017. –

+0

是的肯定,因爲事件只綁定到日曆,給我一分鐘來更新它,以便工作也打字 – quirimmo

+0

完成,更新答案和例子在jsfiddle – quirimmo