2012-08-13 75 views
0

我有一個RadEditor,帶有必需的字段驗證程序。必填字段驗證的錯誤消息僅在回發後消失。它在radeditor中輸入任何文本後不會消失。RadEditor驗證郵件只有在回發後纔會發生

我試圖爲onblur事件編寫javascript並隱藏錯誤消息。但它在IE8中沒有按預期工作。一旦我輸入任何文本,錯誤消息正在消失,但如果我刪除文本並使radditor再次變爲空白,我不會再收到錯誤消息。因此它沒有正確驗證所需的字段。

我爲「的onblur」事件編寫的JavaScript的:

function DisableRequiredMessage(editor, args) { 
var element = document.all ? editor.get_document().body : editor.get_document(); 
$telerik.addExternalHandler(element, "blur", function(e) { 
var editor1 = $find("ctl00_ContentPlaceHolder1_ContractExpirationAlertEditor"); 
var message1 = editor1.get_html(); 
if (message1 == '<br>' || message1 == '<p>&nbsp;</p>') 
document.getElementById('ctl00_ContentPlaceHolder1_spnEmailBody').style.display = 'block'; 
else        
document.getElementById('ctl00_ContentPlaceHolder1_spnEmailBody').style.display = 'none'; 
}); 
} 

我也試圖比較的文本的長度和樂隊一樣:

var editor2 = $find("ctl00_ContentPlaceHolder1_ContractPendingEContractEditor"); 
var message2 = editor2.get_text(); 
if (message2.length > 1) 
document.getElementById('<%=spnContrPendngEmail.ClientID %>').style.display = 'none'; 

if (message2.length == 0 || message2.length == 1) 
document.getElementById('<%=spnContrPendngEmail.ClientID %>').style.display = 'block'; 
+0

哪裏可以調用'DisableRequiredMessage'函數? – yogi 2012-08-13 07:58:56

+0

在radeditor onclientload事件中。 sjs 2012-08-13 08:10:21

回答

0

您可以連接到keydown eventOnClientSelectionChange事件並檢查內容區域是否爲空。如果它是空的,則顯示錯誤消息。

+0

非常感謝。這很有幫助。我試圖使用Keydown事件,它的工作。 – sjs 2012-08-17 09:12:31

+0

問題是即使按鍵事件,我必須得到radeditor的內容。 如果內容爲空,我應該顯示所需的錯誤消息。 當我在刪除所有文本後檢查radeditor中的文本長度時,它在IE中顯示長度爲6/13(而不是0)。 我試圖用get_html()檢查html文本。它顯示存在

 


。 當我試圖比較文本與此
等(如上一篇文章中的代碼所述), 循環在IE中根本沒有得到執行。但是在Mozilla中同樣工作正常。 – sjs 2012-08-17 12:25:19

+0

主要問題:「RequiredField錯誤消息」僅在回發後消失。在我們在rad編輯器中輸入任何文本之後不是解決方案我嘗試過:在「onblur」或「Keypress」事件中,比較文本的長度或在相同的事件中比較存在的html文本。如果html類似
或 ,然後嘗試隱藏錯誤消息。但兩種解決方案(比較長度和html文本)在IE和Moz失敗。有時它顯示radeditor中的html爲
,但仍不隱藏錯誤消息。請提出一些解決方案。 – sjs 2012-08-18 08:09:40