客户报告说,修改自己的资料后就无法登录了。
于是跟踪客户修改资料的页面,发现为了限制用户修改一些系统选项,于是将部分控件DISABLED了。
检查了一遍代码并未发现明显的问题,于是跟踪代码的执行。
最后发现原来是一个Select控件返回了错误的值:Select1.SelectedValue始终为第一项的值。
再跟踪赋值的地方,发现Select1的值是选择到了正确的选项的,页面上看见的效果也是正常的。
痛苦,想半天想不通。
最后才想起,disabled掉以后的控件,浏览器就不会在提交的时候把它的值提交到服务器:Select1这个控件disaible以后,PostBack的时候,控件不能取到这个值,因此使用第一项作为默认值。可见是disabled引发了这个BUG。
为了简便,直接写一个脚本解决这个问题:
<form οnsubmit="return check(this)">
<script>
function check(frm)
{
var nCount = frm.length;
for (var i=0; i<nCount; i++)
{
frm[i].disabled = false;
}
return true;
}
</script>
一例WEB控件disabled后引发的BUG
最新推荐文章于 2018-11-02 20:22:16 发布