easyui 如何为标签动态追加属性实现渲染效果
简述一下在项目遇到的问题,这边有一个需求,选择不同类型,加载不同的div标签(其中属性是否必填是区分类型的关键)
html界面是这样的
<div class="grid_1 lbl">规则类型:</div>
<div class="grid_3 val"><input type="text" data-bind="comboboxValue:form.RULETYPE, datasource:dataSource.RuleTypes,comboboxReadOnly:readonly" data-options="onChange:RuleTypeChange"
class="z-txt easyui-combobox" required="true" /></div>
<div class="clear"></div>
<div id="showDiv">
<div class="grid_1 lbl">规则对象:</div>
<div class="grid_3 val">
<input id="boTable" data-bind="combogridValue:form.BOCLASS,combogridReadOnly:readonly" class="z-txt easyui-combogrid"
data-options="panelWidth:600, mode: 'remote', rownumbers:true,
idField:'MID',
textField:'CODENAME',
pagination:true,
method: 'get',
loadMsg: '正在加载数据...',
url:'/api/Psb/PssValidateRule/GetBoClass',
columns:[[
{ field: 'MID', title: 'MID', width: },
{ field: 'CODENAME', title: '名称', width: },
{ field: 'FULLNAME', title: '对象全名', width: ,hidden:true},
{ field: 'TABLENAME', title: '对象名', width: ,hidden:true},
]],
fitColumns: true,
onSelect:onSelectSourceBill
" />
</div> <div class="grid_1 lbl">计费对象:</div>
<div class="grid_3 val">
<input id="boField" data-bind="combogridValue:form.BOFIELD,combogridReadOnly:readonly" class="z-txt easyui-combogrid" />
</div>
<div class="grid_1 lbl">开始数量:</div>
<div class="grid_3 val"><input id="beginNum" type="text" data-bind="numberboxValue:form.BEGINNUM,numberboxReadOnly: readonly" class="z-txt easyui-numberbox" data-options="min: 0, precision: 0" /></div>
<div class="clear"></div> <div class="grid_1 lbl">规则条件:</div>
<div class="grid_3 val"><input id="costWhere" type="text" data-bind="value:form.COSTWHERE,readOnly:readonly" class="z-txt easyui-validatebox" /></div>
<div class="grid_1 lbl">计算函数:</div>
<div class="grid_3 val"><input id="costMethod" type="text" data-bind="value:form.COSTMETHOD,readOnly:readonly" class="z-txt easyui-validatebox" /></div>
<div class="grid_1 lbl">结束数量:</div>
<div class="grid_3 val"><input id="endNum" type="text" data-bind="numberboxValue:form.ENDNUM,numberboxReadOnly: readonly" class="z-txt easyui-numberbox" data-options="min: 0, precision: 0" /></div>
<div class="clear"></div>
</div> <div class="grid_1 lbl">计费单价:</div>
<div class="grid_3 val"><input type="text" data-bind="numberboxValue:form.COSTPRICE,numberboxReadOnly: readonly" class="z-txt easyui-numberbox" data-options="min: 0, precision: 2" required="true" /></div>
<div class="grid_1 lbl">超出单价:</div>
<div class="grid_3 val"><input type="text" data-bind="numberboxValue:form.OVERPRICE,numberboxReadOnly: readonly" class="z-txt easyui-numberbox" data-options="min: 0, precision: 2" /></div>
<div class="clear"></div>
在选择规则类型时,动态隐藏显示divc层,当显示div层时,为div下的每个标签添加必填属性;反之,移除对应标签的必填属性
js方法
//加载时,默认隐藏div
$("#showDiv").attr("style", "display:none;"); //隐藏div
//获取规则类型
var ruleType = @((int)Dxc.Persistent.DxcEnumCostRuleType.Change); //变动
//规则类型切换
RuleTypeChange = function (newValue, oldValue) {
//当规则类型是变动时
if (newValue == ruleType)
{
$("#showDiv").attr("style", "display:block;"); //显示div
//jquery 动态追加属性(已追加,不渲染效果)
//$('#boTable').attr("required",true);
//easyui 动态追加属性
$('#boTable').combogrid({required:true});
$('#boField').combogrid({required:true});
$('#beginNum').numberbox({required:true});
$('#endNum').numberbox({required:true});
$('#costWhere').validatebox({required:true});
$('#costMethod').validatebox({required:true}); }else{
$("#showDiv").attr("style", "display:none;"); //隐藏div
//jquery 动态移除属性(已移除,不渲染效果)
//$('#boTable').removeAttr("required");
//easyui 动态移除属性
$('#boTable').combogrid({required:false});
$('#boField').combogrid({required:false});
$('#beginNum').numberbox({required:false});
$('#endNum').numberbox({required:false});
$('#costWhere').validatebox({required:false});
$('#costMethod').validatebox({required:false});
}
}
注意:原先考虑用jquery的动态添加属性和移除属性,但是出现一种情况,debug查看页面是加上属性了,但是界面没有渲染,所以改用easyui的方式
切换界面效果
1)图1

2)图2

参考来源:
http://www.mamicode.com/info-detail-2243131.html
easyui 如何为标签动态追加属性实现渲染效果的更多相关文章
- C# 自定义类动态追加属性
利用Dynamic,需要.net4.0以上的支持 var dg = rel.ResultDocuments.FirstOrDefault()["dg"].AsBsonArray.G ...
- jQuery动态添加li标签并添加属性和绑定事件
代码如下: <%@page import="java.util.ArrayList"%> <%@ page language="java" c ...
- 通过JS动态追加标签,以父评论子评论为例
以下代码前后端交互以Django模板语法为例 先来以伪代码来示意用法: HTML部分: JS动态插入部分代码: 运行之后我们来浏览器看检查打印的内容: 看插入前后打印结果我们可以得知 $title[0 ...
- HTML5 <a>标签的ping属性用法
随着移动互联网用户井喷式的增长,web前端开发中的HTML5在近几年备受瞩目,越来越多的人从事html5开发相关工作.今天小编也来凑个热闹,和大家一起来谈谈HTML5中<a>标签的ping ...
- JAVAWEB开发之JSTL标签库的使用、 自己定义EL函数、自己定义标签(带属性的、带标签体的)
JSTL JSTL简单介绍: JSTL的全称:JSP Standard Tag Library,JSP标准标签库 JSTL的作用: 提供给Java Web开发者一个标准通用的标签函数库 和E ...
- 浅谈 easyui tabs 的href和content属性
众所周知,jQuery Easyui 的tabs插件有两种方式加载某个tab(标签页)上的内容:“href远程请求”和“content本地内容”,本文就两种方式的优缺点进行简单分析和思考. 两者特点: ...
- input标签的hidden属性,四大常用JSTL标签库
input标签的hidden属性的应用及作用 定义:传输关于客户端/服务器交互的状态信息. Transmits state information about client/server intera ...
- HTML <a> 标签的 target 属性
HTML <a> 标签的 target 属性 HTML <a> 标签 定义和用法 <a> 标签的 target 属性规定在何处打开链接文档. 如果在一个 <a ...
- JS组件系列——使用HTML标签的data属性初始化JS组件
前言:最近使用bootstrap组件的时候发现一个易用性问题,很多简单的组件初始化都需要在JS里面写很多的初始化代码,比如一个简单的select标签,因为仅仅只是需要从后台获取数据填充到option里 ...
随机推荐
- mybatis 转义
当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序 ...
- Tomcat的日志分割三种方法
一.Tomcat的日志分割三种方法 一.方法一:用cronolog分割tomcat的catalina.out文件 Linux 日志切割工具cronolog详解:https://blog.csdn.ne ...
- Java发送邮件功能
package com.hd.all.test.testjava; import java.util.Properties; import javax.mail.Address; import jav ...
- 九、使用多线程——NSThread,GCD和NSOperation
概述 早上起床,你先打开洗衣机,然后用热水把泡面泡上,接着打开电脑开启一天的码农生活.其中“洗衣服”.“泡泡面”和“码代码”3个任务(线程)同时进行,这就是多线程.网上有许多关于多线程的经典解释,此处 ...
- 使用new和newInstance()创建类的区别
在初始化一个类,生成一个实例的时候,newInstance()方法和new关键字除了一个是方法,一个是关键字外,最主要有什么区别?它们的区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一 ...
- VC++运行库 集32位/64位整合版
运行程序时,win7/win10(x86和x64)常会遇到缺少什么缺少msvc***.dll问题 安装下面链接提供的程序,安装后,便可解决. [2016-10-10]Microsoft Visual ...
- SpringMvc @PathVariable 工作原理
SpringMvc @PathVariable 工作原理: 友情提示:查看清晰大图,请鼠标右击图片后,选择新标签页中打开. 相关对象: DispatcherServlet DefaultAnnot ...
- GoldenGate实时投递数据到大数据平台(7)– Apache Hbase
Apache Hbase安装及运行 安装hbase1.4,确保在这之前hadoop是正常运行的.设置相应的环境变量, export HADOOP_HOME=/u01/hadoop export HBA ...
- Shiro授权管理
一.授权 授权,也叫访问控制,即在应用中控制谁能访问哪些资源(如访问页面/编辑数据/页面操作等).在授权中需了解的几个关键对象:主体(Subject).资源(Resource).权限(Permissi ...
- Docker Kubernetes 容器扩容与缩容
Docker Kubernetes 容器扩容与缩容 环境: 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 管理节点:192.168.1.79 ...