知识库总目录: No.0 Web开发知识库
(迁移自三年前我的MSN Live space,顺便补一下空缺编号:)
为了效率,为了规范,更为了偷懒,我们需要重用。
近来写页面时,老想将查看页和增加修改页共用一个页,那就想着当判断是查看页面时将表单中的元素只读一下就OK了。但不知道为啥发布HTML的老大们不给RADIO,CHECKBOX,SELECT设置READONLY属性捏?
开始想办法。
先是发现他们的"DISABLED"属性虽然实现无法修改值,但却会让他们的值无法提交到服务器。后来有人指出可以在提交前让disabled=false;不过这样做有风险,如果提交时服务器响应很慢的话,用户有足够的时间去修改!(user是很邪恶滴!)
不过人民的智慧是无穷滴!还是从网上找到很多别的途径来达到只读目的,下面各自介绍一种可用性比较强的实现方法:
RADIO:
<input type=radio onclick="return false;">
(2007-09-05修改)真的是非常抱歉,这个方法实际上行不通,今儿个更新一下:
<input type="radio" onclick="this.checked=false;" name="a" >
<input type="radio" onclick="this.checked=true;" name="a" checked>
<input type="radio" onclick="this.checked=true;" name="a" checked>
CHECKBOX:
<input type=checkbox onclick="this.checked=!this.checked">
SELECT:
<select onchange="this.selectedIndex=1">
<option>1</option>
<option selected>2</option>
<option>3</option>
</select>
<option>1</option>
<option selected>2</option>
<option>3</option>
</select>
FILE:
<input name="txtFake" type="text" size="50" readonly>
<input style="width:0px;border:0px;" type="file" name="fj" onpropertychange="txtFake.value=this.value">
<input style="width:0px;border:0px;" type="file" name="fj" onpropertychange="txtFake.value=this.value">