如何建立自訂驗證錯誤訊息,包含在 InfoPath 中驗證控制項的名稱

文章翻譯 文章翻譯
文章編號: 822032 - 檢視此文章適用的產品。
全部展開 | 全部摺疊

在此頁中

結論

Microsoft Office InfoPath 會自動檢查您在表單中輸入的資料。如果資料的值不符合所指定的資料驗證規則的條件,InfoPath 就會顯示錯誤訊息。 中透過下列方式之一,可能會出現錯誤訊息:
  • 對話方塊錯誤訊息: 這是資料驗證錯誤訊息,可開啟時不是有效的資料輸入控制項中顯示自訂錯誤訊息的對話方塊。
  • 內嵌的錯誤訊息: 這是在控制項,您可使用資料驗證錯誤訊息。該控制項包含不正確的資料時,InfoPath 會標記以紅色虛框線控制項。若要檢視內嵌錯誤訊息,從控制項,使用者在控制項上按一下滑鼠右鍵,或將指標停留控制項為螢幕提示,請參閱錯誤訊息。
本文提供如何建立內嵌錯誤訊息,從使用者介面或從指令碼的範例。使用者提供的值小於 30 或多個 65 時,您建立此範例表單會將標記"樹齡"文字方塊控制項。這項錯誤的這個內嵌郵件會包含控制項的名稱。

設計表單

在 InfoPath 2010

  1. 啟動 InfoPath。
  2. 建立新的表單。
  3. 在 [欄位] 工作窗格 myFields,] 上按一下滑鼠右鍵,然後按一下 [新增]。
  4. 在 [新增欄位或群組] 對話方塊請在 [名稱] 文字方塊中輸入 時代
  5. 資料類型] 清單中選取 整數 (整數),再按 [確定]
  6. 移動 時代 欄位到表單上。

在 InfoPath 2003 或 InfoPath 2007 中

  1. 啟動 InfoPath。建立新的表單。
  2. 在 [設計工作] 工作窗格中,按一下 [資料來源] 開啟資料來源] 工作窗格]。
  3. 資料來源] 工作窗格 myFields,] 上按一下滑鼠右鍵,然後按一下 [新增]。 在 [新增欄位或群組] 對話方塊請在 [名稱] 文字方塊中輸入 時代資料類型] 清單中選取 整數 (整數),再按 [確定]
  4. 移動 時代 欄位到表單上。

使用使用者介面來新增資料驗證

在 InfoPath 2010

  1. 按一下以選取 時代 文字方塊控制項。
  2. 在 [常用] 索引標籤上,按一下 [新增規則],按一下 Is Not 間,然後再按一下 [顯示驗證錯誤
  3. 工具提示] 文字方塊中的 [規則] 窗格的輸入 [時代欄位的值必須大於 30 和小於 65]。

在 InfoPath 2003 或 InfoPath 2007 中

  1. 時代 文字] 方塊中控制項上按一下滑鼠右鍵,然後按一下 [文字方塊內容]。 在 [文字方塊內容] 對話方塊按一下 [資料驗證]。
  2. 在 [資料驗證 (時代)] 對話方塊中,按一下 [新增]。
  3. 條件運算子下拉式清單中上下清單選取 是小於
  4. 在條件值下拉式清單中選取 [輸入數字,然後鍵入 [30]。
  5. 按一下 []。
  6. 將新的下拉式清單方塊改成 或者
  7. 在第二個條件運算子下拉式清單,選取 [大於]。
  8. 在第二個條件值下拉式清單,選取 輸入數字,] 然後輸入 [65]。
  9. 在 [工具提示 文字] 方塊鍵入 時代欄位的值必須大於 30 和小於 65
  10. 按三次 [確定] 以關閉所有對話方塊。

使用指令碼來新增資料驗證

  1. 時代 文字] 方塊中控制項上按一下滑鼠右鍵,然後按一下 [文字方塊內容]。 在 [文字方塊內容] 對話方塊按一下 [資料驗證]。
  2. 在 [資料驗證 (時代)] 對話方塊從 事件] 清單中選取 [OnValidate],然後按一下 [編輯]。

    Microsoft Script 編輯器] 會啟動。
  3. 將下列程式碼加入至 OnValidate 事件時代欄位:
    function msoxd_my_Age::OnValidate(eventObj)
    {
    	// Clear any previous errors for this node.
    	XDocument.Errors.Delete(eventObj.Site,"InvalidValue");
    	
    	//Set the valAge variable to the value that is entered in the Age field.
    	var valAge = parseInt(eventObj.Site.text);
    	
    	//If the value that is entered in the Age field is less than 30 or 
    	//greater than 65, add a passive error to the collection of the error.
    	if ((valAge < 30) || (valAge > 65))
    	{
    		XDocument.Errors.Add(eventObj.Site,"InvalidValue","The value of the "
    		 + eventObj.Site.baseName + " field must be greater than 30 and less than 65.");
    	
    	}
    
    }
  4. 儲存變更。關閉 [Script 編輯器]。
  5. 按一下 [確定] 關閉 [資料驗證 (時代)] 對話方塊,然後按一下 [確定] 以關閉 [文字方塊內容] 對話方塊。

測試表單

  1. 按一下 [在工具列的 [預覽表單]。
  2. 時代] 欄位中鍵入 29,然後按一下 [外欄位]。

    請注意以紅色虛線框反白控制項。這表示值無效。
  3. 將指標移到控制項。

    請注意工具提示會顯示自訂錯誤訊息。錯誤訊息中包含包含無效的資料的控制項的名稱。

屬性

文章編號: 822032 - 上次校閱: 2010年5月14日 - 版次: 3.0
這篇文章中的資訊適用於:
  • Microsoft Office InfoPath 2007
  • Microsoft Office InfoPath 2003
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)
關鍵字:?
kbmt kbhowtomaster kbhowto KB822032 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:822032
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com