xheditor和
validate都是優秀的
jQuery插件,但將兩者組合到起,如果初始化的順序不當,則會出現一些微妙的結果。我在做一個文本提交頁面時就同時用到了這兩個插件,一個用於顯示富文本編輯器,一個用來驗證用戶是否填寫的內容,我的初始化代碼如下:
代碼如下:
$("#form1").validate({
rules: {
Body: "required"
},
messages: {
Body: "請填寫正文"
}
});
var editor = $("#Body").xheditor(true, {
tools: "simple"
});
但在提交時,盡管已經填寫了內容,第一次點擊提交按鈕時仍然顯示“請填寫正文”,第二次點擊提交按鈕時才會真正提交,這一現象讓我百思不得其解,究竟問題出在哪了呢?
因為當前項目中有多個頁面都用到了這兩個插件,而其中有一個頁面提交時是正常的,於是我便仔細的對比了正常的和有問題的頁面異同,發現初始化的順序不一樣。在能正常提交的頁面中先初始化的xheditor,然後初始化的validate,而有問題的頁面正好相反,原來是這樣!問題到此也用迎刃而解了,只要顛倒這兩個插件的初始化順序,讓xheditor在validate之前初始化,就可避免“兩次提交”問題的發生。
希望本文對您有所幫助。
CKEditor也有這問題,我解決方法是獲取Editor裡內容放入到textarea裡就好了。