資源描述:
《ckeditor無法驗證的解決方案(js驗證jqueryvalidate驗證)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、CKEditor無法驗證的解決方案(js驗證+jQueryValidate驗證)這篇文章主要為大家詳細介紹了CKEditor無法驗證的解決方案和jQueryValidate驗證框架,感興趣的小伙伴們可以參考一下最近項目的前端使用了jQuery,表單的前端驗證用的是jQueryValidate,用起來很簡單方便,一直都很滿意的前段時間,根據(jù)需求為表單中的textarea類型的元素加上了html富文本編輯器,用的是CKEditor,功能強大,定制方便,也很滿意。不過用CKEditor增強過的textarea元素,這個字段要求是非空的,在jQueryValidate總是驗證不通過,原因就
2、是在CKEditor編輯器填寫了內(nèi)容之后,編輯器并不是立即把內(nèi)容更新到原來的textarea元素中的,我沒仔細看源代碼,試過一種情況就是每一次提交不通過,第二次提交就可以通過的,貌似編輯器是在submit事件之前把編輯器的內(nèi)容更新到textarea中的(這個是猜測,不知道對不對我對jQuery和CKEditor都不太熟悉,算是拿來就用,有問題就放狗的那種)。于是在網(wǎng)上找到了解決問題的代碼,代碼不是我寫的,我只是記錄一下我遇到的問題,代碼非原創(chuàng)。原理就是當編輯器更新了內(nèi)容之后,立即把內(nèi)容更新到textarea元素。nbsp:CREDITOR.instances[〃page_conte
3、nt〃Lon(〃instanceReady〃,function()nbsp;nbsp;nbsp;{nbsp;nbsp;nbsp:nbsp;nbsp;nbsp;nbsp;//setkeyupeventnbsp:nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;this.document,on(〃keyup〃,updateTextArea):nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp://andpasteeventnbsp;nbsp;nbsp:nbsp:nbsp:nbsp;nbsp;this.document.on(〃paste〃,upda
4、teTextArea):nbsp:nbsp;nbsp;}):nbsp;nbsp;nbsp:functionupdateTextArea()nbsp;nbsp;nbsp;{nbsp;nbsp;nbsp;nbsp;nbsp;CKEDITOR.tooIs.setTimeout(functionOnbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{nbsp;nbsp;nbsp;nbsp:nbsp;nbsp;nbsp;nbsp;nbsp;$(〃#page_content〃).val(CREDITOR.instances.page_content.getData(
5、)):nbsp:nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$(〃#page_content/z).trigger(’keyup’);nbsp;nbsp;nbsp;nbsp;nbsp;nbsp:nbsp;nbsp:},0);nbsp;nbsp:nbsp;}nbsp;目前一切使用正常,算是解決了一個讓我頭痛的問題另一種解決思路:CKEditor編輯器是增強過的textarea元素,在填寫了內(nèi)容之后,編輯器并不立即把內(nèi)容更新到原來的textarea元素中的,而是等到submit事件之前把編輯器的內(nèi)容更新到textarea中.因此,普通的js驗證或是j
6、queryvalidate驗證都獲取不到編輯器的值.)1.js驗證獲取CKEditor編輯器的值其實很容易,其值就是CREDITOR,instances,mckeditor.getData(),實例代碼如下:It:scriptlanguage=〃javascript〃type=〃text/javascript/zgt:nbsp;nbsp;nbsp:functioncheckForm()nbsp;nbsp;nbsp;nbsp:nbsp;{nbsp;nbsp;nbsp;nbsp;nbsp:nbsp;varf=document.forml:nbsp:ding=f.tbTopicHeadi
7、ng.value;nbsp;nbsp;nbsp:nbsp;nbsp;nbsp;topicHeading=topicHeading.replace(廠s+/g,:nbsp:nbsp;nbsp;nbsp;nbsp:nbsp;topicHeading=topicHeading.replace(/s+$/g,:nbsp;nbsp:nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if(topicHeading==〃〃)nbsp;nbsp;nb