最近遇到的若干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赋值一次。
最近遇到的若干Web前端问题:disable和readonly,JqueryEasyUI,KindEditor的更多相关文章
- Web前端温故知新-CSS基础
一.CSS定义与编写CSS 1.1 CSS的定义 全名:Cascading Style Sheets -> 层叠样式表 定义:CSS成为层叠样式表,它主要用于设置HTML页面中的文本内容(字体. ...
- 也许你需要点实用的-Web前端笔试题
之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...
- 用grunt搭建web前端开发环境
1.前言 本文章旨在讲解grunt入门,以及讲解grunt最常用的几个插件的使用. 2.安装node.js Grunt和所有grunt插件都是基于nodejs来运行的,如果你的电脑上没有nodejs, ...
- web前端之HTML的大框架(body元素与frameset元素)
web前端之HTML的大框架 body元素与frameset元素 对于从事html的人员来说,我们一般熟悉的框架是先声明html ,然后在<html>标签对里包着<head ...
- 创建 Web 前端开发环境
Web 前端开发涉及多种工具,这里将常用工具的安装和配置进行说明,提供了详细的说明,为后继的开发创建一个坚实的基础. 本文介绍的工具有:NodeJS, NPM, Bower, Git 和 Grunt. ...
- Web前端优化最佳实践及工具集锦
Web前端优化最佳实践及工具集锦 发表于2013-09-23 19:47| 21315次阅读| 来源Googe & Yahoo| 118 条评论| 作者王果 编译 Web优化Google雅虎P ...
- 【前端福利】用grunt搭建自动化的web前端开发环境-完整教程
jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...
- 淘宝前端工程师:国内WEB前端开发十日谈
一直想写这篇"十日谈",聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是" ...
- Web前端开发十日谈
=========================================================================== 原文章: http://kb.cnblogs.c ...
随机推荐
- iOS 中client和server的 Web Service 网络通信 (1)
当你打开你手机上新浪微博应用或者知乎应用是.你是否会去想这些显示在手机上的图片和数据时从哪里来的?又是通过如何的方法实现的?好.那么接下来就介绍是如何实现的.过程又是怎么样的. 当我们浏览着 ...
- PhpStorm Live Template加PHP短语法Short Open Tags打造原生模板
关于Php要不要使用模板一直被大家讨论,支持的说使用模板更简洁,易与前端project师交流.反对的说Php本身就支持内嵌语法,不是必需再用个模板,减少性能. 事实上使用Php的短语法.直接嵌入也不是 ...
- MDNS的漏洞报告——mdns的最大问题是允许广域网的mdns单播查询,这会暴露设备信息,或者被利用用于dns放大攻击
Vulnerability Note VU#550620 Multicast DNS (mDNS) implementations may respond to unicast queries ori ...
- [Atcoder Grand 006 C] Rabbit Exercise 解题报告 (期望)
题目链接:https://www.luogu.org/problemnew/show/AT2164 https://agc006.contest.atcoder.jp/tasks/agc006_c 题 ...
- BZOJ 3130 二分+网络流
思路: 不被题目忽悠就是思路 二分一下max 判一下等不等于最大流 搞定 7 9 1 1 2 3 1 3 3 2 3 3 3 4 2 3 5 2 3 6 1 4 7 2 5 7 2 6 7 2 这里有 ...
- 请问Typecho Mysql 数据库和Sqlite数据库我该如何选择。
纠结如我,又纠结了,请大家帮忙看一下我该如何选择.就一个没有文章的博客.一直用VPS太浪费,现在换成了虚拟主机.但是虚拟主机的MYSQL数据库限制连接数30个,我不懂这是个什么概念,但是我觉得30太少 ...
- 鼠标点击textarea后,在光标后追加内容
$("#insertMsg").on("click",function(){ //获取下拉选项框的值 var textFeildValue = $(" ...
- 用VUE做网站后台
介绍: 这是一个用vuejs2.0和element搭建的后台管理界面. 相关技术: vuejs2.0:渐进式JavaScript框架,易用.灵活.高效,似乎任何规模的应用都适用. element:基于 ...
- Lenovo k860i 移植Android 4.4 cm11进度记录【上篇已完结】
2014.5.16 为了验证一下下载的CM11的源码有没有问题,决定编译一下cm官方支持的机器,手上正好有台nexus7 2012,就拿它为例测试一下在mac os x平台的整个编译过程. 1. 最开 ...
- shell脚本不同运行方式的差异
说明:以下是个人的见解,不一定都正确,如有错误,欢迎指正! 一,shell脚本的运行方式,最常见的有以下几种: 1 ) . xxx.sh,注意,前面是一个点'.' 2 ) source xxx.sh ...