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

想了半天也想不好该给这篇文章起个什么标题,其实这篇文章的核心是说当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]

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券