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里 ...
随机推荐
- outlook2016用Exchange轻松绑定腾讯企业邮箱
系统版本:Win10 X64 1709 英文版 邮箱:Outlook2016 背景知识: 1.发送邮件均使用SMTP协议(SMTP 全称“Simple Mail Transfer Protocol”, ...
- POJ 3087 模拟
给定两个长度为len的字符串s1和s2, 接着给出一个长度为len*2的字符串s12. 将字符串s1和s2通过一定的变换变成s12,找到变换次数 变换规则如下: 假设s1=12345,s2=67890 ...
- CentOS 7 nginx+tomcat9 session处理方案之session保持
Session保持(会话保持)是我们见到最多的名词之一,通过会话保持,负载均衡进行请求分发的时候保证每个客户端固定的访问到后端的同一台应用服务器.会话保持方案在所有的负载均衡都有对应的实现.而且这是在 ...
- 152. Maximum Product Subarray(动态规划)
Given an integer array nums, find the contiguous subarray within an array (containing at least one n ...
- MongoDB 知识点
左边是mongodb查询语句,右边是sql语句.对照着用,挺方便. db.users.find() select * from users db.users.find({"age" ...
- Porsche Piwis Tester II V14.000 with CF30 Laptop at autonumen.com
Porsche piwis tester ii is the latest professional tester for Porshe,the most poweful diagnose and o ...
- Linux 其它知识点
1:import sys ----导入路径 sys.path.append("/hom") ----添加一个hom的路径 2:重新导入模块 from imp import ...
- Bugku-CTF之Web5(JSPFUCK??????)
Day10 web5 JSPFUCK??????答案格式CTF{**} http://123.206.87.240:8002/web5/ 字母大写
- win10虚拟桌面使用方法-提高工作效率
任务栏右键 => 显示任务视图按钮 然后坐下角出现的任务视图按钮可以添加虚拟桌面 快捷键: win + ctrl + 左/右 切换桌面 win + tab 打开任务视图 win + ctrl + ...
- jQuery validator plugin之Selector
原文 :unchecked Selector Selects all elements that are unchecked. jQuery( ":unchecked" ) Inv ...