嗨,我是新來的JavaScript和道場。我試圖使用兩個dijit DateTextBoxes和下拉日曆來爲數據庫上的查詢建立日期範圍。一旦選擇了開始日期或結束日期,我想限制可用日期,以便不可能選擇在開始日期之前按時間順序排列的結束日期,反之亦然。我試圖從dojo參考中應用這個叫做'即時更改約束'的示例(大約在頁面的中間部分):http://dojotoolkit.org/reference-guide/dijit/form/DateTextBox.html但是,這些約束在我的代碼中不起作用。我真正做的唯一不同的是使用tundra
主題。任何建議將不勝感激。dojo dijit.form.DateTextBox約束不起作用,datetextbox
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/resources/dojo.css">
<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dijit/themes/tundra/tundra.css" media="screen" />
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojo/dojo.xd.js" data-dojo-config="isDebug: true, parseOnLoad: true"></script>
<script type="text/javascript">
dojo.require("dijit.form.DateTextBox");
</script>
</head>
<body class="tundra">
<div>
<label for="fromDate">From:</label>
<input id="fromDate" type="text" name="fromDate" data-dojo-type="dijit.form.DateTextBox" required="true" onChange="dijit.byId('toDate').constraints.min = arguments[0];" />
<label for="toDate">To:</label>
<input id="toDate" type="text" name="toDate" data-dojo-type="dijit.form.DateTextBox" required="true" onChange="dijit.byId('fromDate').constraints.max = arguments[0];" />
</div>
</body>
</html>
我能想到的唯一的另一件事是,每一個文字框是它自己的執行環境中運行,所以他們不'看'對方。 – Ted 2012-01-05 14:10:28
感謝您的迴應Michael!我嘗試了你的建議,但沒有任何運氣。我不明白爲什麼沒有設定約束條件,即使當我像你建議的那樣對一個日期進行硬編碼時也是如此。另外,我的猜測是'arguments [0]'是每個DateTextBox對象的arguments屬性中的第一個值,如果用戶選擇一個日期,則會更新它;然後這將是一個有效的js日期。 – Ted 2012-01-05 14:43:22