最近遇到的若干Web前端問題:disable和readonly,JqueryEasyUI,KindEditor
最近專案中用到了Jquery Easyui和KindEditor等框架元件,問題真不少啊~
一些看起來很簡單理所當然的事情,竟然花費了不少時間,才解決好~
1.readonly和disable的區別
readonly:只讀,不可編輯,提交表單時,值會提交到後端。
disable:禁止(包含了“只讀”和“不可編輯”),提交表單時,值不會提交到後端。
如果需要提交到後端,在表單提交之前,手動把disable修改為false。
text叫只讀,select有“可輸入”和“可編輯”2種~
Html
<input type="text" readonly="readonly" disabled="disabled"/>
Jquery
$("#id").attr("readonly",true);
$("#id").attr("disabled",true);
實際場景:
如果只讀,用readonly。
如果不但只讀,而且後端不需要這個資料,可以用disable。也可以用readonly,但是提交之前,把disable改為false。
readonly和disable還有個重大的區別,readonly的控制元件顏色是“白,偏亮的色彩”,disable是控制元件顏色"黑,偏暗的色彩"。
為了給使用者,統一的效果,如果不可編輯,建議統一使用“readonly”或“disable”。
如果是disable,後端又需要資料,一種辦法是修改前端程式碼,另外一種是修改後端程式碼(後端存在不需要修改這幾個欄位的update方法)。
Easyui和Combobox
Easyui中,textbox有readonly屬性。
$('#projectName').textbox({
readonly:false
});
Combobox沒有找到readonly屬性,找到了“禁用”
$('#industryId').combobox("disable");
//可用
$('#messtype').combobox('enable');
需要注意的是,如果是.combobox,用readonly有時有問題,下拉選單框沒有顯示選項。
如果用combobox用textbox的readonly賦值,提交的時候,是字串,不是對應的id。
2.KindEditor的ready方法,不執行。
官方示例程式碼
KindEditor.ready(function(K) {
editor = K.create('textarea[id="content"]', {
cssPath : prettifyCssPath,
uploadJson : uploadJson,
urlType : 'absolute',
items:items
});
prettyPrint();
});
在JqueryUI中,ready方法沒有執行。
執行使用create方法。
requirementEditor = KindEditor.create('textarea[id="requirement"]', {
allowFileManager : true,
cssPath : prettifyCssPath,
uploadJson : uploadJson,
urlType : 'absolute',
items:kdItems,
});
網上有人說“KE.create”,至少新版本4.1.x會報錯。
(通過網上找答案,也發現,百度的答案,有時候年份靠前的答案在前面,但是可能已經過時了)
說道KindEditor,有時發現編輯框出不來,可能和EasyUI有一定的衝突,我是通過調整和規範化js引入解決這個問題的。
3.KindEditor自定義,編輯框的工具條。
var items=[ 'copy', 'paste',
'plainpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', '-',
'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold',
'italic', 'underline', 'strikethrough'];
KindEditor.ready(function(K) {
editor = K.create('textarea[id="content"]', {
cssPath : prettifyCssPath,
uploadJson : uploadJson,
urlType : 'absolute',
items:items
});
prettyPrint();
});
傳入自定義的item陣列,items可以定義為全域性變數,如果只用一次,用區域性變數比較好。
4.KindEditor修改值。
KindEditor.html("#content","輸入HTML內容,點選我,檢視效果");
<textarea name="content" id="content"
style="width: 700px; height: 70px;"></textarea>
千萬注意,有個“#”。
網上不少答案,小雷表示“呵呵噠”~
5.表單提交時,KindEditor的值麼有提交。
$("#" + fmId).form('submit', {
url : "${base}/fundBack/edit",
onSubmit : function() {
$("#requirement").val(requirementEditor.html());
$("#descrition").val(descritionEditor.html());
$("#fundNo").attr("disabled",false);
return $(this).form('validate');
},
在提交之前,把KindEditor的editor物件的html()值,用jquery賦值一次。
一些看起來很簡單理所當然的事情,竟然花費了不少時間,才解決好~
1.readonly和disable的區別
readonly:只讀,不可編輯,提交表單時,值會提交到後端。
disable:禁止(包含了“只讀”和“不可編輯”),提交表單時,值不會提交到後端。
如果需要提交到後端,在表單提交之前,手動把disable修改為false。
text叫只讀,select有“可輸入”和“可編輯”2種~
Html
<input type="text" readonly="readonly" disabled="disabled"/>
Jquery
$("#id").attr("readonly",true);
$("#id").attr("disabled",true);
實際場景:
如果只讀,用readonly。
如果不但只讀,而且後端不需要這個資料,可以用disable。也可以用readonly,但是提交之前,把disable改為false。
readonly和disable還有個重大的區別,readonly的控制元件顏色是“白,偏亮的色彩”,disable是控制元件顏色"黑,偏暗的色彩"。
為了給使用者,統一的效果,如果不可編輯,建議統一使用“readonly”或“disable”。
如果是disable,後端又需要資料,一種辦法是修改前端程式碼,另外一種是修改後端程式碼(後端存在不需要修改這幾個欄位的update方法)。
Easyui和Combobox
Easyui中,textbox有readonly屬性。
$('#projectName').textbox({
readonly:false
});
Combobox沒有找到readonly屬性,找到了“禁用”
$('#industryId').combobox("disable");
//可用
$('#messtype').combobox('enable');
需要注意的是,如果是.combobox,用readonly有時有問題,下拉選單框沒有顯示選項。
如果用combobox用textbox的readonly賦值,提交的時候,是字串,不是對應的id。
2.KindEditor的ready方法,不執行。
官方示例程式碼
KindEditor.ready(function(K) {
editor = K.create('textarea[id="content"]', {
cssPath : prettifyCssPath,
uploadJson : uploadJson,
urlType : 'absolute',
items:items
});
prettyPrint();
});
在JqueryUI中,ready方法沒有執行。
執行使用create方法。
requirementEditor = KindEditor.create('textarea[id="requirement"]', {
allowFileManager : true,
cssPath : prettifyCssPath,
uploadJson : uploadJson,
urlType : 'absolute',
items:kdItems,
});
網上有人說“KE.create”,至少新版本4.1.x會報錯。
(通過網上找答案,也發現,百度的答案,有時候年份靠前的答案在前面,但是可能已經過時了)
說道KindEditor,有時發現編輯框出不來,可能和EasyUI有一定的衝突,我是通過調整和規範化js引入解決這個問題的。
3.KindEditor自定義,編輯框的工具條。
var items=[ 'copy', 'paste',
'plainpaste', '|', 'justifyleft', 'justifycenter', 'justifyright',
'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', '-',
'title', 'fontname', 'fontsize', '|', 'textcolor', 'bgcolor', 'bold',
'italic', 'underline', 'strikethrough'];
KindEditor.ready(function(K) {
editor = K.create('textarea[id="content"]', {
cssPath : prettifyCssPath,
uploadJson : uploadJson,
urlType : 'absolute',
items:items
});
prettyPrint();
});
傳入自定義的item陣列,items可以定義為全域性變數,如果只用一次,用區域性變數比較好。
4.KindEditor修改值。
KindEditor.html("#content","輸入HTML內容,點選我,檢視效果");
<textarea name="content" id="content"
style="width: 700px; height: 70px;"></textarea>
千萬注意,有個“#”。
網上不少答案,小雷表示“呵呵噠”~
5.表單提交時,KindEditor的值麼有提交。
$("#" + fmId).form('submit', {
url : "${base}/fundBack/edit",
onSubmit : function() {
$("#requirement").val(requirementEditor.html());
$("#descrition").val(descritionEditor.html());
$("#fundNo").attr("disabled",false);
return $(this).form('validate');
},
在提交之前,把KindEditor的editor物件的html()值,用jquery賦值一次。
相關文章
- 最近遇到的問題和解決辦法
- 最近遇到的幾個LINUX問題Linux
- 在Centos和Docker上安裝STF 遇到的若干問題總結CentOSDocker
- 總結一下最近遇到的問題
- mysql 加大 了logfile之後,遇到innodb disable的問題MySql
- 最近幾天做oracle stream遇到很多問題Oracle
- Web ADI測試遇到的問題Web
- 最近在看父子元件通訊中遇到的一個問題?元件
- [提問交流]onethink中kindeditor問題
- 最近遇到的RAC的一個例項無法連線的問題
- 關於若干資料平均放入若干個盒子的問題
- java建立web動態網頁遇到的問題JavaWeb網頁
- 關於kindeditor插入程式碼問題
- constraint enable,disable的問題解決AI
- KindEditor編輯器的圖片上傳問題
- 最近面試的題目(WEB、Service、SQL、JavaScript)面試WebSQLJavaScript
- 最近思考的一個問題
- 最近的幾個技術問題總結和答疑
- 工作遇到的問題
- mysql 遇到的問題MySql
- Docker遇到的一些問題和感想Docker
- 某電商專案的若干技術問題
- web前端學習教程分享:作用域的問題Web前端
- 用筆記來記錄遇到的問題:釋出版本和非釋出版本遇到的問題筆記
- 未來網路若干問題思考
- C# Task若干問題淺析C#
- 最近的幾個技術問題總結和答疑(九)
- 最近的幾個技術問題總結和答疑 (11)
- 最近的幾個技術問題總結和答疑(七)
- 最近的幾個技術問題總結和答疑(八)
- 最近的幾個技術問題總結和答疑(二)
- 最近的幾個技術問題總結和答疑(三)
- 最近的幾個技術問題總結和答疑(四)
- 最近的幾個技術問題總結和答疑(六)
- 最近的幾個技術問題總結和答疑(五)
- local_irq_disable和disable_irq的區別
- 前端開發中遇到的一些問題----持續更新前端
- 大佬們,最近測 PC 客戶端遇到一個很奇怪的問題,找不到原因。客戶端