前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Flowportal.Net 3.5t BPM中批量设定输入框、下拉选项的字体颜色

在Flowportal.Net 3.5t BPM中批量设定输入框、下拉选项的字体颜色

作者头像
崔文远TroyCui
发布2019-02-27 09:47:48
1.5K0
发布2019-02-27 09:47:48
举报
文章被收录于专栏:远在上海远在上海

想了半天也想不好该给这篇文章起个什么标题,其实这篇文章的核心是说当DropDownList使用了disabled属性后,字体变为灰色,怎么办都没法修改字体颜色,除非不用DropDownList或者不要Disabled。研究这个问题的缘由是美国的一个BPM关键用户提出来当访问forms/read.aspx?tid=xxx的页面时,很多输入框和选择项都是灰色的,她说很难看清,要求字体颜色深一点。对于input和textarea,在BPM里有一个DisableBehavior属性如下图,默认是Disable,修改为Readonly就能解决。而对于DropDownList和CheckBox等Select类的选项,就没有办法解决了。

既然如此,那就按照我的思路,只要访问的页面地址包括read.aspx,那就把所有select的控件的disabled属性去掉。首先想起来的就是用Jquery,把核心代码写到 $(document).ready(function(){}中,可悲的是,调整input控件的代码执行了,但是去掉select控件属性的代码怎么都不执行。

<br/>$(document).ready(function(){<br/><br/>var pathname = window.location.pathname;<br/>if (pathname.toLowerCase().indexOf("read.aspx") >= 0 ) {<br/>$("select").removeAttr("disabled");<br/>$("select").removeAttr("readonly");<br/>$("input").removeAttr("disabled");<br/>// method 1<br/>//$("input").attr("DisableBehavior","ReadOnly");<br/>// method 2<br/>$("input").css({color:"#000"});<br/>$("textarea").css({color:"#000"});<br/>}<br/><br/>});<br/>

经过询问官方的技术大牛马丁,他说BPM本身的js是在document的Ready状态执行,可能跟Jquery的document的Ready会有先后执行的顺序问题。给出建议使用Button来调试那段去掉select控件属性的代码,如果成功的话,就放到body.onload中调用。

于是拖了一个xButton控件到页面任意地方,然后用如下代码调试,一切顺利。

<br/>$("#xbtnDarken").click(function(){<br/><br/>$("select").removeAttr("disabled");<br/>$("select").removeAttr("readonly");<br/><br/>});<br/>

于是按照马丁所给思路,我把代码写到window.onload中,如下代码,解决问题。

<br/>//window.onload = function(){<br/>// 可以使用这种方法,建议用下面的方法,当然了,还可以使用body.onload的原生和Jquery两种调用<br/>//};<br/>$(window).load(function (){<br/><br/>var pathname = window.location.pathname;<br/>if (pathname.toLowerCase().indexOf("read.aspx") >= 0 ) {<br/>$("select").removeAttr("disabled");<br/>$("select").removeAttr("readonly");<br/>$("input").removeAttr("disabled");<br/>// method 1<br/>//$("input").attr("DisableBehavior","ReadOnly");<br/>// method 2<br/>$("input").css({color:"#000"});<br/>$("textarea").css({color:"#000"});<br/>}<br/><br/>});<br/>

虽然问题解决了,但是由此引发的思考很多,为了保险起见,我同时保留了Ready的函数。详细原因强烈建议阅读以下几篇文章:

1、[URL=http://www.cnblogs.com/mackxu/archive/2012/12/02/2798207.html]jQuery.ready和onload区别[/URL] 2、[URL=http://www.songlecn.com/2009/03/423/]window.onload 和 ‘jquery.onload’的执行顺序问题[/URL] 3、[URL=http://www.google.com.hk/search?hl=zh-CN&newwindow=1&safe=strict&site=&source=hp&q=HTML+SELECT+Disable+Font+Color&btnK=Google+%E6%90%9C%E7%B4%A2]HTML SELECT Disable Font Color[/URL]

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013年2月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档