2017-09-27 161 views
3

我想更改dijit dateTextBox的日期顯示格式。
目前我的日期顯示的是這樣如何使用Dijit DateTextBox顯示和驗證自定義格式?

enter image description here

我的聲明是這樣的

<input type="text" data-dojo-type="dijit/form/DateTextBox" data-dojo-attach-point="theInput" /> 

但我想的格式更改爲我想例如2017年9月14日的任何格式,或09-14-2017。

此外,如果使用鍵盤輸入格式,是否可以根據相同的格式進行驗證 - 即,當用戶鍵入數據時必須使用該格式或者出現無效消息。

編輯: 所有我能找到的,它允許你設置這兩個輸入約束和格式的限制提到 - 但也有文檔中沒有例子如何使用此。能夠看到陳述式和程序式的例子會很好。

enter image description here

此外,根據這裏的一些其他職位在聲明標記,你可以指定一個像

data-dojo-props="constraints:{datePattern:'yyyy-MM'}" 

但是我想以編程方式做到這一點的限制,但是當我檢查輸入對象

this.theInput.constraints 

沒有datePattern,min或max等屬性。

回答

4

這是可能的兩個編程和聲明代碼:

  1. 的聲明例如:

只是把你的模式,最小,最大的制約道具,如:

<input type="text" name="shortYear" data-dojo-type="dijit/form/DateTextBox" data-dojo-props="constraints:{datePattern: 'MM-dd-yyyy',min:'2016-12', max:'2018-06'}" value="09-14-2017" required="true" /> 

查看工作小提琴

require(["dijit/form/DateTextBox","dojo/parser", "dijit/form/Button","dojo/on" , 
 
    "dojo/domReady!" 
 
], function(DateTextBox,parser,Button, On) { 
 
\t \t parser.parse(); 
 
});
<link href="https://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css" rel="stylesheet"/> 
 
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script> 
 
<body class="claro"> 
 
<input type="text" name="shortYear" data-dojo-type="dijit/form/DateTextBox" data-dojo-props="constraints:{datePattern: 'MM-dd-yyyy',min:'2017-09-03', max:'2018-01-01'}" value="09-14-2017" required="true" /> 
 
</body>

或者這FIddle

  • 爲程序化的例子:
  • 你剛剛使用直接訪問限制對象並在那裏設置約束值Mydateinput.constraints.contName = value like

    myDateBox.constraints.datePattern = 'MM-dd-yyyy' 
    myDateBox.constraints.min = new Date(); 
    myDateBox.constraints.max = new Date("yyyy-MM-dd") 
    

    請參閱使用片斷

    require(["dijit/form/DateTextBox", "dijit/form/Button","dojo/on" , 
     
        "dojo/domReady!" 
     
    ], function(DateTextBox,Button, On) { 
     
    \t \t datebox = new DateTextBox({ 
     
        }, "date"); 
     
        datebox.constraints.datePattern = 'MM-dd-yyyy'; 
     
        
     
        datebox.constraints.min = new Date("2017/09/03"); 
     
        datebox.constraints.max = new Date("2018/01/01") 
     
        
     
        datebox.startup(); 
     
    });
    <link href="https://ajax.googleapis.com/ajax/libs/dojo/1.10.0/dijit/themes/claro/claro.css" rel="stylesheet"/> 
     
    <script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script> 
     
    
     
    <body class="claro"> 
     
        <div id="date" ></div> 
     
    </body>

    還是Fiddle

    相關問題