-
2017-11-10 15:02:00#消息模板实时翻译
1、消息模板支持实时翻译,并且将消息模板中的主题、消息、短信、邮件修改为消息富文本编辑器,对主题和短信的富文本编辑器工具进行隐藏。
2、替换规则:
同步拼接编码和label,通过某种既定的格式,建立映射关系:
实体:
`${<span name="${Model:bc:BeisenCloudDemo.shiti.ziduan}">实体.字段</span>}`
工作流:需进行添加流程定义ID,并且在运行态解析时将流程定义编码去掉
`${<span name="${Model:wf:9af7f46a-ea52-4aa3-b8c3-9fd484c2af12/bc:BeisenCloudDemo.shiti.ziduan}">实体.字段</span>}`
3.翻译过程中,对历史数据:自定义变量和上下文变量不进行支持,目前发现某些是支持的,遇到不支持的也不要大惊小怪。
4、富文本粘贴复制修改:
我们在上面已经给进行了介绍,我们是对编码和名称之间通过一些标签建立某种既定的格式简历映射关系来达到我们替换和实时翻译的目的,但是在实际操作过程中发现,我们在对富文本里面的东西进行粘贴和复制的时候富文本会对我们既定的格式进行某种改变,比如粘贴时会对我们的文本进行添加标签操作:
`<span></span>${<span name="${Model:bc:BeisenCloudDemo.shiti.ziduan}">实体.字段</span><span>}</span>`
会对我们的文本进行添加span标签,改变我们的格式,导致解析失败,抑或者我们进行添加颜色和样式进行格式处理的时候也会改变我们的标签,会对我们的标签进行合并或者去掉的操作。
解决方案:
1、修改百度Ueditor源代码,对我们实际的情况进行特殊的处理:
处理源码的文件名称为4.3.3 版本的ueditor.all.js
2.修改地方:
第一处:对进行span标签的合并处理进行操作:
在源代码:2985 处,如果对源代码进行处理合并时直接进行返回,不进行span标签的合并处理
第二处: 12113 行,去掉 white-space:nowrap 属性( 百度UEditor富文本编辑器去除自动追加span标签,版本:4.3.3),取代该属性的目的是为了我们在进行复制粘贴的过程中会对 `<span></span>${<span name="${Model:bc:BeisenCloudDemo.shiti.ziduan}">实体.字段</span><span>}</span>` 里面的文本${} 只要是涉及到文本的地方都会进行添加span标签进行标注,通过去掉该属性,在进行粘贴复制的时候不会对文本内容进行添加span标签(当然大多数情况下回对文本进行添加p标签,但是处理P标签的方法很多,比如有个属性类似于allowDivToP:false 是否将div转化为p标签的等等就可以了)更多相关内容 -
Span使用之利用自定义Span解析Html中特殊标签实现类似微博@效果
2017-07-20 23:00:31Span使用之利用自定义Span解析Html中特殊标签实现类似微博@效果在前两篇博客中,讲解了系统已经定义好的Span,并且怎么利用系统的span实现一些特殊的效果。本篇博客将是这一系列的最后一篇。 Span使用之系统提供的...Span使用之利用自定义Span解析Html中特殊标签实现类似微博@效果
在前两篇博客中,讲解了系统已经定义好的
Span
,并且怎么利用系统的span
实现一些特殊的效果。本篇博客将是这一系列的最后一篇。实现效果
分析一下实现效果,就是一长串文字,部分文字根据我们的要求变色,并且可以点击。点击的内容有我们定义。
本篇博客的实现和系统的UrlSpan
实现类似。而对于微博的
@
的效果,和该实现流程几完全一致。看完你就明白了。原理分析
系统提供的
Span
中有一个ClickableSpan
,不过他是一个抽象类,需要我们实现onClick
方法,并且他也提供了修改颜色方法,我们只需要实现这个类即可。并且通过第一篇博客中的讲解,将他设置到对应文本索引上就可以了。如上所述确实可以实现,不过对于一个文本,如果有多个地方,那么需要我们设置多个
ClickableSpan
,这很不利于使用。假如实现微博的@
功能,多个@
并且数据可能是后台返回,如果我们一一的拼接,并没有提供多大的便利。这时候我们需要用到一些其他方面的知识。关于
TextView
我们可以放入一个Html
格式的文本,他会自动解析,而本章的关键便在于HTML
,我们自定义一个标签,类似于<a>
标签一样,让标签中的内容可以点击。根据如上所述,整个流程实现如下:
- 定义自定义标签和编写HTML
- 设置HTML到
TextView
上。 - 解析
Html
文本并获取到自定义标签。 - 自定义类实现
ClickableSpan
。 - 将解析的自定义标签中的内容设置自定义的
Span
实现
定义自定义标签和编写HTML
首先看一下编写的
HTML
文本我已阅读并同意<app_a href="https://www.baidu.com" show_underline=false >《注册协议》</app_a>、<app_a href="https://www.baidu.com" show_underline=false >《用户服务协议》</app_a>
在这里,我们定义
<app_a>
标签作为特殊标签,当解析到该标签的时候表示其要作为特殊处理,设置点击事。同时对于
<app_a>
标签添加了自定义属性,href
和show_underline
。将这一段文本写到
string.xml
文件中,因为Html
中也会有标签,可能会和xml
冲突,所以我们需要添上相关的标识。<string name="tag_html"> <![CDATA[ 我已阅读并同意<app_a href="https://www.baidu.com" show_underline=false >《注册协议》</app_a>、<app_a href="https://www.baidu.com" show_underline=false >《用户服务协议》</app_a> ]]> </string>
设置HTML到
TextView
上。@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mText = ((TextView) findViewById(R.id.text)); // 使点击实现可以传递到我们定义的`span`上 mText.setMovementMethod(LinkMovementMethod.getInstance()); // 设置文本 mText.setText(fromHtml(getString(R.string.tag_html))); } // 解析html public static Spanned fromHtml(String html) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return Html.fromHtml(html, Html.FROM_HTML_MODE_COMPACT, null, new HtmlParser(new LinkHandler())); } else { return Html.fromHtml(html, null, new HtmlParser(new LinkHandler())); } }
关键方法在于
Html.from()
,该方法能够实现将html
转化为spanned
。同时他能够传入一个解析器,实现自定义解析。因为要解析自定义标签,所以我们要传入一个自定义解析器。Html.from()
是系统提供的方法,而HtmlParser
,LinkHandler
使我们实现的类。解析
Html
文本并获取到自定义标签看一下
HtmlParser
的实现public class HtmlParser implements Html.TagHandler, ContentHandler { // ... }
实现了两个接口,其中
tagHandler
是实现解析器必须实现的接口,他其中定义了一个方法public interface TagHandler { void handleTag(boolean opening, String tag, Editable output, XMLReader attributes); }
在解析的过程中,每遇到一个标签,都会回调这个方法,对于我们现在的文本,他的回调如下:
03-20 14:24:26.392 9727-9727/com.spearbothy.htmlparser I/info: open:truetag:htmloutput: * 03-20 14:24:26.392 9727-9727/com.spearbothy.htmlparser I/info: open:truetag:bodyoutput: * 03-20 14:24:26.392 9727-9727/com.spearbothy.htmlparser I/info: open:truetag:app_aoutput:我已阅读并同意 * 03-20 14:24:26.392 9727-9727/com.spearbothy.htmlparser I/info: open:falsetag:app_aoutput:我已阅读并同意《注册协议》 * 03-20 14:24:26.392 9727-9727/com.spearbothy.htmlparser I/info: open:truetag:app_aoutput:我已阅读并同意《注册协议》、 * 03-20 14:24:26.392 9727-9727/com.spearbothy.htmlparser I/info: open:falsetag:app_aoutput:我已阅读并同意《注册协议》、《用户服务协议》 * 03-20 14:24:26.392 9727-9727/com.spearbothy.htmlparser I/info: open:falsetag:bodyoutput:我已阅读并同意《注册协议》、《用户服务协议》 * 03-20 14:24:26.392 9727-9727/com.spearbothy.htmlparser I/info: open:falsetag:htmloutput:我已阅读并同意《注册协议》、《用户服务协议》
再看第二个接口,他是一个解析处理类,因为对于
TagHandler
的回调,,没有明显的区分开闭标签,都在一个方法中回调,而ContentHandler
能够区分开闭标签进行回调。他里面有两个最重要的方法public void startElement(String uri, String localName, String qName, Attributes atts) public void endElement(String uri, String localName, String qName)
那么看一下流程开始
handleTag()
的实现。并且一些相关字段:// 处理我们自定义标签的类 private final TagHandler mHandler; // 系统的解析器 private ContentHandler mWrapperContentHandler; // 解析的文本那内容 private Editable mOutput; // 保存我们解析标签的状态 private ArrayDeque<Boolean> mTagStatus = new ArrayDeque<>(); @Override public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) { if (mWrapperContentHandler == null) { mOutput = output; // 保存系统的解析器处理 mWrapperContentHandler = xmlReader.getContentHandler(); // 设置当前类处理系统标签 xmlReader.setContentHandler(this); // 记录当前标签是否处理 mTagStatus.addLast(Boolean.FALSE); } }
整个方法的流程如下:
- 保存文本的输出,以便获取文本
- 获取系统的默认解析文本的处理器,放入我们自己的标签处理器,就是当前类,该类实现了
ContentHandler
- 保存当前标签是否处理。true表示当前是自定义标签。false不是当前自定义标签。
在这里有必要说一下
mTagStatus
,他是一个队列,因为标签都是一一对应,有一个开就有一个闭,那么我们在标签开始的时候添加是否处理,在标签结束的时候获取这个索引,就只到是否需要处理了。然后看一下实现
ContentHandler
中的方法的处理流程@Override public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { Log.i("info", "start:--" + "uri:" + uri + " localName:" + localName + " qName:" + qName); // 判断当前是否是需要处理的自定义标签的类 boolean isHandled = mHandler.handleTag(true, localName, mOutput, atts); mTagStatus.addLast(isHandled); // 如果不是,交由系统处理 if (!isHandled) mWrapperContentHandler.startElement(uri, localName, qName, atts); } @Override public void endElement(String uri, String localName, String qName) throws SAXException { Log.i("info", "end:--" + "uri:" + uri + " localName:" + localName + " qName:" + qName); // 获取状态,判断是否自定义需要处理 if (!mTagStatus.removeLast()) { mWrapperContentHandler.endElement(uri, localName, qName); } else { mHandler.handleTag(false, localName, mOutput, null); } }
在这里有必要强调一点,对于开闭标签,我们的逻辑应该是这样的:在标签开始时,打上标记,在标签结束时,处理相关逻辑,因为只有在结束标签,我们才能知道文本的长短。
在代码中有一个
mHandler
,该类是我们自己编写的类,如果你有印象的话,在解析Html
时,我们传入了一个Handler
// LinkHandler Html.fromHtml(html, Html.FROM_HTML_MODE_COMPACT, null, new HtmlParser(new LinkHandler()));
我们在
HtmlParser
中定义一个接口,然后具体的自定义逻辑交给LinkHandler
实现。public class HtmlParser implements Html.TagHandler, ContentHandler { public interface TagHandler { boolean handleTag(boolean opening, String tag, Editable output, Attributes attributes); } }
此时一定要将我们自定义的
TagHandler
和系统的区分开看一下
LinkHandler
的实现public class LinkHandler implements HtmlParser.TagHandler { @Override public boolean handleTag(boolean opening, String tag, Editable output, Attributes attributes) { if (tag.equalsIgnoreCase("app_a")) { if (opening) { // 开始标签,获取对应值 String href = attributes.getValue("href"); String showUnderline = attributes.getValue("show_underline"); if (TextUtils.isEmpty(showUnderline)) { showUnderline = "true"; } // 构造标签实体,用以保存数据 LinkTagAttribute entity = new LinkTagAttribute(); entity.setHref(href); entity.setShowUnderline(Boolean.parseBoolean(showUnderline)); // 将解析的数据实体暂时保存到文本上 (打标记) output.setSpan(entity, output.length(), output.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); } else { // 获取之前保存的标记 LinkTagAttribute entity = getLast(output, LinkTagAttribute.class); if (entity != null) { // 获取开始标签的位置索引 int start = output.getSpanStart(entity); // 移除之前的标记 output.removeSpan(entity); int end = output.length(); if (start != end){ // 设置自定义的Span output.setSpan(new AppUrlSpan(entity),start,end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } } } return true; } return false; } }
该处理的方法中分为两部分,开始标签和闭合标签。
开始标签的时候,获取到标签以及其自定义属性保存到实体中,同时
Editable
提供将实体作为标记打入文本上,类似于View.setTag()
方法一样。然后在闭合标签的时候,获取之前打的标记,然后根据标记的内容设置生成
Span
并设置。看一下自定义属性实体
LinkTagAttribute
public class LinkTagAttribute implements Parcelable { private String href; private boolean isShowUnderline; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(this.href); dest.writeByte(isShowUnderline ? (byte) 1 : (byte) 0); } protected LinkTagAttribute(Parcel in) { this.href = in.readString(); this.isShowUnderline = in.readByte() != 0; } public static final Creator<LinkTagAttribute> CREATOR = new Creator<LinkTagAttribute>() { @Override public LinkTagAttribute createFromParcel(Parcel source) { return new LinkTagAttribute(source); } @Override public LinkTagAttribute[] newArray(int size) { return new LinkTagAttribute[0]; } }; public LinkTagAttribute() { } //..... }
自定义类实现
ClickableSpan
该类的实现就比较简单了
public class AppUrlSpan extends ClickableSpan implements ParcelableSpan { private static final int APP_URL_SPAN = 100000; private LinkTagAttribute entity; // .... @Override public void onClick(View widget) { // 点击事件,简单的弹出提示 Log.i("info", "click"); Toast.makeText(widget.getContext(), entity.getHref() + "", Toast.LENGTH_SHORT).show(); } @Override public int getSpanTypeId() { // 类型标识 return APP_URL_SPAN; } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); // 修改文本的状态 ds.bgColor = Color.TRANSPARENT; ds.setUnderlineText(entity.isShowUnderline()); } }
将解析的自定义标签中的内容设置自定义的
Span
最后一步,该步骤的代码在第三步的时候就已经贴出。
在解析到结束标签是的代码如下
// 获取之前保存的标记 LinkTagAttribute entity = getLast(output, LinkTagAttribute.class); if (entity != null) { // 获取开始标签的位置索引 int start = output.getSpanStart(entity); // 移除之前的标记 output.removeSpan(entity); int end = output.length(); if (start != end){ // 设置自定义的Span output.setSpan(new AppUrlSpan(entity),start,end,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); } }
获取标记,打上
Span
。源码地址
具体的源码细节已经上传到github上,欢迎访问https://github.com/AlexSmille/HtmlParser
-
如何删除HTML的span标签
2017-01-10 13:48:08删除span标签 方法1:根据id function removeSpan () { var obj = document.getElementById( "span1" ); var parent = obj.parentNode; parent .removeChild(obj); //在这里通过父节点+待删除...前言
最近使用JQuery-validate插件以及BootStrap的模态框做输入验证,然后遇到一个问题:关闭模态框后,样式以及输入内容无法清除, 除非自己再加事件,去做resetForm,索性根据HTML元素,做成全局使用的。
清空输入框
首先做一点科普:
$("form :input") 返回form中的所有表单对象,包括textarea、select、button等 $("form input") 返回form中的所有input标签对象 $(“form>input”) 选择所有指定“form”元素中指定的"input"的直接子元素 form input 是属于层级选择器(将每一个选择器匹配到的元素合并后一起返回) form :input是属于表单选择器(匹配所有<input>、<textarea>、<select>、<button>元素)
清空操作
$('input', form).each(function(){ var type = this.type; var tag = this.tagName.toLowerCase(); if(tag == 'text' || tag == 'password' || tag == 'textarea') { this.value = ''; } else if (type == 'checkbox' || type == 'radio') { this.checked = false; } else if (type == 'select') { this.selectedIndex = -1; } });
删除span标签
方法1:根据id
function removeSpan(){ var obj = document.getElementById("span1"); var parent = obj.parentNode; parent.removeChild(obj);//在这里通过父节点+待删除节点对象来删除 //下面是span自己删除自己,true表示连子节点也一起删除,本例是childspan,但是false的话自己和子节点多不会删除 //obj.removeNode(true); //另外如果使用了jquery,可以这么写: $(obj).remove(); }
方法2:遍历form
$('span', form).each(function(){ $(this).remove(); });
删除样式
科普
closest()
- http://www.w3school.com.cn/jquery/traversing_closest.asp定义和用法
closest() 方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上。
语法/b>
.closest(selector)
参数 描述
Jquery-validate验证错误、成功样式删除
$('form div').closest('.form-group').removeClass('has-success'); $('form div').closest('.form-group').removeClass('has-error');
-
js取出并修改<span>标签里的值(title)
2020-05-08 11:18:56详情页,某字段A,数据库中存的是编码,显示到页面上要—此编码+对应的名称 实现 统一风格前端是span表示的,如下(修改前):此时显示的${mainObject.A}是编码 <td> <div> <span> <strong...需求
详情页,某字段A,数据库中存的是编码,显示到页面上要—此编码+对应的名称
实现
- 统一风格前端是span表示的,如下(修改前):此时显示的${mainObject.A}是编码
<td> <div> <span> <strong>A字段:</strong> <span title="${mainObject.A}" id="Acode"> ${fns:abbr(mainObject.A,32)} </span> </span> </div> </td>
- 修改后span表示的,如下
<td> <div> <span> <strong>A字段:</strong> <span title="${mainObject.A}" id="Acode" /> </span> </div> </td>
- 修改后 新增一个异步查询名称,再拼接后给span重新赋值,如下
<script type="text/javascript"> window.onload=getName;//页面加载完执行(为了加载出编码,要根据编码查询) function getName(){ var code = document.getElementById("Acode").title //取出title值 if(code == '' || null == code){ return }else{ $.ajax({ url: '${xxx}/xxx/xxx/getCodeNameByCode', type: "POST", data:{'code':code}, success: function (data) { var code = data.code; var codeName = data.codeName; var allName = codeName +"_"+code; document.getElementById("Acode").innerText = allName; //给title赋值 } }); } } </script>
-
前端页面标题、p、span等标签限制显示的文字数量
2021-04-21 23:19:25前端页面标题、p、span等标签限制显示的文字数量 一、css样式 在相应的h、p、span等标签的css样式中加入下列样式 display: block; /* 当前元素本身是inline的,因此需要设置成block模式 */ white-space: nowrap; /... -
vue获取自定义属性的值,标签的值
2020-10-23 11:32:15vue中尽量减少dom操作。 方式一:不推荐使用 自定义属性为data-val,通过e.target.getAttribute()获取。 <span data-val="0" @click="getVal0">点我</span>... console.log(e....span data-val= -
html标签中name属性重复的问题
2020-05-21 12:06:30name属性值重复导致保存的值有逗号 今天老项目出了一个bug,这里说一下,项目是用jsp作为页面的。 问题是这样的,新增一条记录的时候,没有任何问题。然后在编辑这条记录的时候,出现了一个问题,有一个属性值是通过... -
oracle clob字段去除html标签
2017-03-28 14:03:14通过正则表达式的方式去除html标签 select regexp_replace(content,']*>|nbsp;|&','') content from T_SALE_CHANNEL_CONFIG t orderby status_date desc;...使用8G套餐38元档可领取50M<spanstyle="font- -
泛微jq控制字段必填判断工具
2021-09-07 10:08:01用途:添加字段是否必填 适用于主表字段 输入参数: fieldid 字段id 例如 1000 isBrowser 0:非浏览字段 , 1:浏览字段 option 0:非必输 , 1:必输 */ function needcheck(fieldid,isBrowser,option){ var text... -
elasticsearch span 跨度查询简介
2019-08-11 17:58:39span_term查询 ...用法也很简单,只需要指定查询的字段即可: { "span_term" : { "user" : "kimchy" } } 另外,还可以指定查询出的分值倍数: { "span_term" : { "user" : { "value" : "kimchy", "boo... -
泛微oa流程表单之明细字段控制明细字段必填
2020-11-17 08:11:08if (jQuery("#" + fieldid + "span").find("img").length > 0) { jQuery("#" + fieldid + "span").find("img").eq(0).remove(); } } } 请在评论区留言,共同探讨~~~ 可以加QQ群,和志同道合的朋友相互学习 -
vue span 字符串长度控制显示的字数超出显示省略号
2019-05-14 15:47:28利用vue中的 过滤器filter <span class="icon">{{item.hashName | ellipsis}}</span> 定义过滤器 ... name: 'xx', filters: { ellipsis (value) { if (!value) return '' i... -
springmvc 后台实体类接受前端json字符串时,其中一个属性content 接受富文本内容时 标签、<span> 这些标签...
2019-09-20 16:26:07前端一个字段 <script id="editor" type="text/plain" name="content" style="width:600px;height:400px;border-radius: 3px;" >$content!}</script>向后台传该富文本值是 前端控制台打印内容如下<p... -
dedecms搜索模板,使用{dede:list}标签调用自定义字段不显示(空白)
2019-03-19 11:44:00前几天使用织梦做一个搜索功能,正常使用{dede:list}调用自定义内容模型中的自定义字段,代码如下:(自定义字段的调用可以参考:http://www.dede58.com/a/dedejq/5233.html,本文不再赘述) {dede:list row='100... -
sql语句修改字段长度
2021-05-03 06:34:22原始发行者:面包屑修改字段属性的SQL语句如果数据量非常大,达到了数百万条记录,请使用企业管理器更改字段类型,但经常会超时,更改不成功,那么可以使用SQL语句来更改,如下所示:a,更改字段类型的长度,可更改表... -
泛微oa流程表单之明细表字段通过文本输入内容使另外一个字段必填
2020-10-11 21:58:16//明细表字段通过文本输入内容使另外一个字段必填 jQuery("#detailDiv_0").... var num = jQuery(this).parents('tr[_target="datarow"]').eq(0).find('span[name="detailIndexSpan0"]').html();//获取序号 var inde -
微博数据各字段的含义
2019-06-27 11:18:24最近在写微博的爬虫,框架已经基本稳定,但是在解析各字段含义的环节卡了好几天,因为不清楚各个字段的含义,官网的api注释好像有点过时,很多字段没有注释,所以只能自己一点一点分析了 移动端得到的微博数据是json... -
优化vue 根据后台反馈状态动态显示相应字段
2022-03-29 09:35:02优化vue 根据后台反馈状态动态显示相应字段 1. 只有两个状态 使用三元运算符 <!-- 未优化版 --> <template slot="state" slot-scope="state"> <span v-if="state == 1">已上线</span> <... -
HTML标签失效,关于textarea中,高亮某个字段
2019-03-18 15:03:40因为textarea中,所有的元素都是以文本的方式显示; jsp 代码: <textarea rows="3" cols="10" name="...span><font color='red'> xx & -
表格生成excel,动态选择要导出的字段
2019-10-14 09:08:031.因为特殊要求需要,查询完之后再进行导出,也就是接口中除了text和response,其他都是条件字段。 2.点击导出,出现选择的相应字段也就是接口中接收的text。 3.选择字段只有点击确定,进行导出。 1. html前端要求 /... -
获取p标签里面的内容与处理
2019-07-18 14:50:08通用的一个字段类型public,然后字符串类型的string的文本字符,自定义设置字段路径FormateHandler,通过传参来进行他们之间的内容获取传递。 字符串string定义声明一个值,明显的记录他获取的内容数据。 if判断来... -
HTML--表单类的标签
2021-03-18 10:42:00表单元素——label 标签任务描述相关知识代码文件8.表单元素——下拉列表任务描述相关知识代码文件9.表单元素——文本域任务描述相关知识代码文件10.表单元素——提交按钮任务描述相关知识代码文件11.表单元素的综合... -
springboot+vue动态字段,动态列表显示
2020-06-09 07:39:44} 2、前端vue代码片段: data () { return { visible: false, labelCol: { xs: { span: 24 }, sm: { span: 5 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 16 } }, form: this.$form.createForm(this), mdl: ... -
【input 标签的 type 属性详解】
2019-09-03 23:16:31input 标签的 type 属性详解1. input 输入标签的type 属性1.1 input 标签的 type类型 属性的常用属性值⑴ type="text"⑵ type="button"⑶ type="checkbox"⑷ type="file"⑸ type="hidden"⑹ type="image"⑺ type=... -
HTML常用标签总结 [建议收藏]
2020-11-25 20:54:071. 标题标签 <h1> </h1> … <h6> </h6> 为了使网页更具有语义化,我们经常会在页面中用到标题标签。HTML提供了6个等级的网页标题 即<h1>-<h6> 2. 段落和换行标签 段落标签... -
hibernate 映射 column name not found 找不到字段 查询出来的数据是重复的
2016-03-25 16:16:51hibernate 映射 column name not found 找不到字段 或者是查询出来的数据是重复的 -
非常实用的织梦dede所有标签调用方法大全 .
2018-08-08 11:04:43关键描述调用标签: <meta name="keywords" content="{dede:field name='keywords'/}"> <meta name="description" content="{dede:field name='... -
对表单里面的字段进行截取,删除form表单里面的某个字段属性
2019-01-03 17:26:55{{role.roleName}}<span v-if="index !== (scope.row.roles.length - 1)">,</span> </span> <span v-for="(role, index) in scope.row.roles" :key="index"> {{role.roleName}}<span v-if="index !== (scope... -
Vue给标签动态绑定样式class或者style
2020-07-02 21:05:02我的项目中实际使用的是vue+element ui :class :class等同于 v-bind:class 借用Vue官网的解释: <div v-bind:class="[active: isActive ]"></div>...你可以在对象中传入更多字段来动态切换多 -
Spring MVC-05循序渐进之数据绑定和form标签库(上)
2018-01-21 23:14:07表单标签库 标签库概述 form表单标签 input标签 password hidden textarea checkbox标签 radiobutton checkboxes radiobuttons select option options errors 源码 数据绑定概述 数据绑定是将用户输入的...