簡體   English   中英

Dojo / Dijit-DateTextBox隱藏我的初始值

[英]Dojo/Dijit - DateTextBox hides my initial value

演示:http: //3wcloud-com-provisioning-qa.appspot.com/testDijitDate

日歷彈出窗口工作正常,我可以選擇一個新日期。 但是,當頁面加載時,我看到日期08/15/2009閃爍了片刻,然后消失了。 CSS或JS默認將其隱藏是出於某種原因嗎?

 dojo.require("dijit.form.DateTextBox"); 
 <link href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/resources/dojo.css" rel="stylesheet" /> <link href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.3/dijit/themes/claro/claro.css" rel="stylesheet" /> <script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/dojo.js" djConfig="parseOnLoad:true"></script> <body class="claro"> <input id="startDate" name="startDate" dojoType="dijit.form.DateTextBox" required=true value="08/15/2009" /> 

我仍在學習使用FireBug。 我可以通過瀏覽DOM找出價值嗎?

Firebug顯示:

 <!-- <input type=text name=startDate size=10 value=""> --> <div wairole="presentation" dojoattachevent="onmouseenter:_onMouse,onmouseleave:_onMouse,onmousedown:_onMouse" id="widget_startDate" class="dijit dijitReset dijitInlineTable dijitLeft dijitTextBox dijitDateTextBox" role="presentation" widgetid="startDate"> <div style="overflow: hidden;"> <div class="dijitReset dijitValidationIcon"> <br/> </div> <div class="dijitReset dijitValidationIconText">Χ</div> <div class="dijitReset dijitInputField"> <input type="text" autocomplete="off" dojoattachpoint="textbox,focusNode" class="dijitReset" aria-valuenow="" aria-invalid="true" id="startDate" tabindex="0" aria-required="true" value="" /> <input type="text" style="display: none;" name="startDate" /> </div> </div> </div> 

Dojo僅在標記中使用ISO8601 / RFC3339樣式的日期。 任何時候在標記中需要日期值時,都應將其專門指定為yyyy-mm-dd從JavaScript設置日期屬性時,應使用Date對象:

 dojo.require("dijit.form.DateTextBox"); dojo.addOnLoad(function() { // make the date text box var startDateTextBox = new dijit.form.DateTextBox({ value: new Date(2009, 7, 15) }, "startDate"); }); 
 <link href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/resources/dojo.css" rel="stylesheet" /> <link href="http://ajax.googleapis.com/ajax/libs/dojo/1.9.3/dijit/themes/claro/claro.css" rel="stylesheet" /> <script src="//ajax.googleapis.com/ajax/libs/dojo/1.9.3/dojo/dojo.js" djConfig="parseOnLoad:true"></script> <body class="claro"> <input id="startDate" name="startDate" dojoType="dijit.form.DateTextBox" required=true value="2009-08-15" /> 

當DateTextBox將其自身應用於輸入字段時,Dijit似乎清除了該值。 我不確定將dijit控件綁定到輸入時為什么不保留value屬性。 但是,DateTextBox在API中具有value屬性。 您可以嘗試以編程方式在構造函數選項中使用此值構造它,而不是使用dojoType屬性。 我認為它看起來像:

dojo.addOnLoad(function(){
    // make the date text box
        var startDateTextBox = new dijit.form.DateTextBox({
             value: "08/15/2009"
        }, "startDate");
});

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM