2011-09-06 193 views
4

有沒有辦法使用dojo/dijit來禁用提交按鈕,直到表單中的所有字段都有效。有點像在表格裏面有dojo > method > onChange?那麼只有在所有表單元素符合條件時才能啓用提交按鈕?禁用提交按鈕直到驗證

回答

2

您是否使用dijit.form.Form小部件作爲窗體?如果你是,我會建議連接到FormonValidStateChange事件。該docs此事件具體說明你的使用情況:

onValidStateChange 
Defined by dijit.form._FormMixin 
Stub function to connect to if you want to do something (like disable/enable a submit button) when the valid state changes on the form as a whole. Deprecated. Will be removed in 2.0. Use watch("state", ...) instead. 

,看看有什麼活動都可以在給定插件的最好辦法是看API Documentation因爲你是「事件摘要」下感興趣的小工具標題。 dojocampus參考文檔經常會留下一些示例,以引用小部件的一些更加模糊的特徵。

+1

你達人!!!! (儘管我應該怎麼知道'onValidStateChange'存在?有沒有地方可以列出'dojo>方法'函數???) – Sevenearths

+0

你大多需要看API文檔,他們做了一個相當不錯的工作來解釋什麼每個屬性/方法/事件對於給定的小部件都會執行。 – BuffaloBuffalo

0

我會建議有一個隱藏的按鈕,將提交表單。當你點擊visbile按鈕時,運行一個驗證所有輸入的javascript函數,然後點擊隱藏的按鈕來提交表單。請在下面找到僞代碼

<form action="register"> 
    <input dojoType="dijit.validation.TextBox"/> 
    <button onClick="validateall()">submit</button> 
    <button id="submitForm" type="submit" hidden="true"/> 
    </form> 

    function validateAll(){ 
     if(AllOk){ 
      clearErrorMessage(); 
      dojo.byId('submitForm').click(); 
    }else{ 
    showErrorMessage(); 
    } 
相關問題