2009-09-28 119 views
0

我試圖使日期文本框在選擇日期後提交數據。要做到這一點,我有這樣的代碼:<form action="timecard/setViewDate" method="post" id="timespan" dojoType="dijit.form.Form"> <input type="text" name="calendar" value="2009-09-28" id="calendar" dojoType="dijit.form.DateTextBox" onchange="doTimechangeSubmit" /> </form>和onchange功能是:function doTimechangeSubmit() { var thisdialog = new dijit.Dialog({ title: "Please Wait...", content: "We are wasting some time.", id: 'stupidWasteOfTime'}); dojo.body().appendChild(thisdialog.domNode); thisdialog.startup(); thisdialog.show(); setTimeout("dojo.byId('timespan').submit();",1000); dojo.byId('timespan').submit(); }如何在選擇日期後使用Dojo DateTextBox提交數據

我有這個功能,因爲沒有等待一點,我收到的價值是小部件開始的日期。我討厭這個,我只是在等待緩慢的反應來打破它。

我想要的是將提交函數掛在一個地方,以保證我得到用戶實際選擇的值。任何人有任何想法?

+0

您使用的是什麼版本的Dojo? – peller 2009-09-30 23:54:48

回答

1

這已在Dojo 1.4中修復。參考票#9566

0

變化dojo.byId('timespan').submit();dijit.byId('timespan').submit();

有關說明閱讀this

+0

Nope不會做任何不同的事情,我仍然需要Timeout來減慢dijit邏輯的提交速度。 – David 2009-09-30 14:35:15

+0

嗯。這很混亂。其實,兩者都是有效的,但他們做的事情略有不同。第一次調用DOM FORM元素的submit() - 應該可以正常工作 - 後者調用dijit.form.Form元素的submit(),最後調用相同的本地方法但執行一些有效性檢查。 – peller 2009-09-30 19:58:29

+0

呃,我的意思是後者調用dijit.form.Form * widget *對象提交,而不是DOM元素。 – peller 2009-09-30 19:59:19

相關問題