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里 ...
随机推荐
- Django中CBV源码解析
使用 关于FBV和CBV的使用在之前有提到,点击穿越. 准备 首先在视图中创建一个类并继承 django.views.View 类,在类中可定义各种请求方式对应执行的函数(函数名为请求方式名称小写). ...
- Vue滑动删除与修改
Vu+element实现 <template> <div class=""> <div class="slider"> &l ...
- centos----------防火墙firewalld和iptables
1.CentOS7默认的防火墙不是iptables,而是firewalle. 关闭防火墙 systemctl stop firewalld 启用防火墙 systemctl start firewall ...
- windows程序设计 加载位图图片
现在网上随便下个jpg图片,用windows自带的画图工具打开,点击画图工具左上角,文件->另存为->选择bmp,点击保存,保存好后,就得到一张位图了. 得到的位图,位图的内存比原图片jp ...
- 为什么入门首选C语言
对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员. C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是如何交互的,程序在 ...
- Unity之获取资源包的路径
先从缓存中获取,如果获取不到,则从包中获取. 如下: public static string GetAssetBundlePath(string path) { // 先尝试从 persist 目录 ...
- lua常用方法收集
1. xlua之将c#集合转换成table -- 将c#的list转换成table local function ConvertCSListToTable(list) local t = {}; , ...
- CentOS 7 NAT模式LVS搭建
NAT模式下 , 调度器需要有两个IP , 一个公网IP一个内网IP , web服务器只需要内网IP 调度器LB : 192.168.94.11(内网IP) 192.168.29.11 (仅主机模式 ...
- sql语句中 “where 1=1” 的用处
通过拼凑sql语句,加入若干个where限制条件,如:select * from table "where conditionA" + ”and conditionB“ + ”an ...
- Bootstrap3基础 table-striped 表格实现隔行换色(浅灰色与白色交替)
内容 参数 OS Windows 10 x64 browser Firefox 65.0.2 framework Bootstrap 3.3.7 editor ...