如何设置Select下拉框、CheckBox、Radio的ReadOnly属性?
2009-02-27 14:14
621 查看
因为Select下拉框只支持disabled属性,不支持readOnly属性,
而在提交时,disabled的控件,又是不提交值的
使用如下的js脚本处理一下,支持下拉框、CheckBox、Radio:
<textarea cols="90" rows="58" name="code" class="javascript">function SetReadOnly(obj, backgroundColor) {
if (obj) {
var ieVer = GetIeVersion();// 获取IE版本
if (obj.type == 'select-one') {
// 下拉框时
if (ieVer > 6) {
obj.onfocus = function() {
var index = this.selectedIndex;
this.onchange = function() {
this.selectedIndex = index;
};
};
} else {
obj.onbeforeactivate = function() { return false; };
obj.onfocus = function() { obj.blur(); };
obj.onmouseover = function() { obj.setCapture(); };
obj.onmouseout = function() { obj.releaseCapture(); };
}
} else if (obj.type == 'checkbox') {
// 复选框时
obj.onclick = function() { return false; };
} else if (obj.type == 'radio') {
// 单选框时,设置所有具有相同name的radio为只读
if (obj.name) {
var arr = document.getElementsByName(obj.name);
var len = arr.length;
var tmp = null;
for (var i = 0; i < len; i++)
if (arr[i].checked) {
tmp = arr[i];
break;
}
var func;
if (tmp)
func = function() { tmp.checked = true; };
else
func = function() { return false; };
for (var i = 0; i < len; i++)
arr[i].onclick = func;
} else
obj.onclick = function() { return false; };
} else {
obj.readOnly = true;
if (obj.type == 'text')
obj.style.borderWidth = '0px';
}
if (backgroundColor)
obj.style.backgroundColor = backgroundColor;
}
}
function GetIeVersion() {
var exp;
try {
var str = navigator.userAgent;
var strIe = 'MSIE';
if (str && str.indexOf(strIe) >= 0) {
str = str.substring(str.indexOf(strIe) + strIe.length);
str = str.substring(0, str.indexOf(';'));
return parseFloat(str.trim());
}
}
catch (exp) {
}
return 0;
}
</textarea>
而在提交时,disabled的控件,又是不提交值的
使用如下的js脚本处理一下,支持下拉框、CheckBox、Radio:
<textarea cols="90" rows="58" name="code" class="javascript">function SetReadOnly(obj, backgroundColor) {
if (obj) {
var ieVer = GetIeVersion();// 获取IE版本
if (obj.type == 'select-one') {
// 下拉框时
if (ieVer > 6) {
obj.onfocus = function() {
var index = this.selectedIndex;
this.onchange = function() {
this.selectedIndex = index;
};
};
} else {
obj.onbeforeactivate = function() { return false; };
obj.onfocus = function() { obj.blur(); };
obj.onmouseover = function() { obj.setCapture(); };
obj.onmouseout = function() { obj.releaseCapture(); };
}
} else if (obj.type == 'checkbox') {
// 复选框时
obj.onclick = function() { return false; };
} else if (obj.type == 'radio') {
// 单选框时,设置所有具有相同name的radio为只读
if (obj.name) {
var arr = document.getElementsByName(obj.name);
var len = arr.length;
var tmp = null;
for (var i = 0; i < len; i++)
if (arr[i].checked) {
tmp = arr[i];
break;
}
var func;
if (tmp)
func = function() { tmp.checked = true; };
else
func = function() { return false; };
for (var i = 0; i < len; i++)
arr[i].onclick = func;
} else
obj.onclick = function() { return false; };
} else {
obj.readOnly = true;
if (obj.type == 'text')
obj.style.borderWidth = '0px';
}
if (backgroundColor)
obj.style.backgroundColor = backgroundColor;
}
}
function GetIeVersion() {
var exp;
try {
var str = navigator.userAgent;
var strIe = 'MSIE';
if (str && str.indexOf(strIe) >= 0) {
str = str.substring(str.indexOf(strIe) + strIe.length);
str = str.substring(0, str.indexOf(';'));
return parseFloat(str.trim());
}
}
catch (exp) {
}
return 0;
}
</textarea>
相关文章推荐
- 基础问题:设置radio、select、checkbox 的readonly 属性
- jQuery设置radio、select、checkbox只读属性后,如何在后台得到数据
- 基础问题:设置radio、select、checkbox 的readonly 属性
- 设置disabled属性后台读不到数据如何让select支持readonly
- 让radio、select、checkbox 具有类似readonly 属性效果
- css技巧,如何设置select、radio 、 checkbox 、file这些不可直接设置的样式 。
- jquery中 如何设置和取得 radio, checkbox, select, multiple select 的值 .
- jquery中 如何设置和取得 radio, checkbox, select, multiple select 的值
- js_前台页面如何设置radio、checkbox、select三者的值以及绑定事件,方便后台接收数据
- 前端开发:css技巧,如何设置select、radio 、 checkbox 、file这些不可直接设置的样式 。
- css技巧,如何设置select、radio 、 checkbox 、file这些不可直接设置的样式 。
- checkbox的readonly属性设置
- Select下拉框的只读属性设置
- jQuery textbox select checkbox radio 取值,设置值
- jQuery textbox select checkbox radio 取值,设置值
- treeView中CheckBox如何设置子节点Check属性
- jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关设置
- jQuery处理下拉框(Select、radio、checkbox等)代码
- treeView中CheckBox如何设置子节点Check属性
- jquery获取和设置radio,select,checkbox的值