IE支持的html元素的disable在netscape4.76中的实现
1. 相关的html元素
(1) text , edit , password , textarea
(2) radio , checkbox
(3) select
2. IE中的写法
(1) document.form_name.text_name.disabled = true;
document.form_name.edit_name.disabled = true;
document.form_name.password_name.disabled = true;
document.form_name.textarea_name.disabled = true;
(2) document.form_name.radio_name[i].disabled = true;
document.form_name.checkbox_name[i].disabled = true;
(3) document.form_name.select_name.disabled = true;
3. Netscape4.76中的写法
(1) document.form_name.text_name.disabled = true;
document.form_name.edit_name.disabled = true;
document.form_name.password_name.disabled = true;
在相应的text , edit , password , textarea 元素上添加对focus事件处理的方法:onfocus=”disableElements(this)”
function disableElements(obj)
{
if(obj.disabled)
{
obj.blur();
}
}
(2) document.form_name.radio_name[i].disabled = true;
document.form_name.checkbox_name[i].disabled = true;
在相应的radio , checkbox元素上添加对mousedown事件处理的方法:onclick=”return disableElements(this)”
function disableElements(obj)
{
if(obj.disabled)
{
obj.checked=false;
return false;;
}
}
(3) document.form_name.select_name.disabled = true;
在相应的select元素上添加对change事件进行处理的方法:onchange=”disableElements(this)”
function disableElements(obj)
{
if (obj.disabled)
{
for (var i=0; i<obj.options.length; i++)
{
obj.options[i].selected = obj.options[i].frozenStatus;
(obj.options[i].selected = false;这样写也可以.)
}
}
}
最后我附上一个例子,这个例子在IE6.0和Netscape4.76下测试通过!
<html>
<body>
<form>
<br>Test:<input type="text" name="t1" onfocus="disableText(this)">
<br>Edit:<input type="edit" name="t2" onfocus="disableEdit(this)">
<br>Textarea:<textarea name="t3" onfocus="disableTextarea(this)"></textarea>
<br>Password: <input type="password" name="t4" onfocus="disablePassword(this)">
<br>Radiobutton: <input type="radio" name="t5" onmousedown="return disableRadio(this)">
<br>Checkbox: <input type="checkbox" name="t6" onclick="return disableCheck(this)">
<br>Defaul disabled Checkbox: <input type="checkbox" disabled name="t8" onmousedown="return disableCheck2(this)">
<br>Select:
<select name="t7" onchange=" ChangeSelect(this)">
<option> one
<option> two
<option> three
<option> four
</select>
<br><input type="button" value="Enable/Disable" onClick="change()">
</form>
</body>
</html>
<script language="javaScript">
function disableText(obj)
{
if(obj.disabled)
obj.blur();
}
function disableEdit(obj)
{
if(obj.disabled)
obj.blur();
}
function disablePassword(obj)
{
if(obj.disabled)
obj.blur();
}
function disableTextarea(obj)
{
if(obj.disabled)
obj.blur();
}
function disableRadio(obj)
{
if(obj.disabled)
{
obj.checked=false;
return false;
}
}
function disableCheck(obj)
{
if(obj.disabled)
{
obj.checked=false;
return false;
}
}
function disableCheck2(obj)
{
obj.disabled=true;
if(obj.disabled)
{
obj.checked=false;
return false;
}
}
function ChangeSelect(obj)
{
if (obj.disabled)
{
for (var i=0; i<obj.options.length; i++)
{
//obj.options[i].selected = obj.options[i].frozenStatus;
obj.options[i].selected = false;
(这两种写法都是可以的)
}
}
}
function change()
{
document.forms[0].t1.disabled=!document.forms[0].t1.disabled;
document.forms[0].t2.disabled=!document.forms[0].t2.disabled;
document.forms[0].t3.disabled=!document.forms[0].t3.disabled;
document.forms[0].t4.disabled=!document.forms[0].t4.disabled;
document.forms[0].t5.disabled=!document.forms[0].t5.disabled;
document.forms[0].t6.disabled=!document.forms[0].t6.disabled;
document.forms[0].t7.disabled=!document.forms[0].t7.disabled;
document.forms[0].t1.value="";
document.forms[0].t2.value="";
document.forms[0].t3.value="";
document.forms[0].t4.value="";
document.forms[0].t5.checked=false;
document.forms[0].t6.checked=false;
document.forms[0].t7.value="";
for (var i=0; i<document.forms[0].t7.options.length; i++)
{
//document.forms[0].t7.options[i].selected = document.forms[0].t7.options[i].frozenStatus;
document.forms[0].t7.options[i].selected = false;
}
}
</script>