您好,欢迎访问一九零五行业门户网

关于js获取radio和select的属性并控制的代码_javascript技巧

实现目标:1、点击“匿名小组”,自动跳转:成员类型“私密群”、访问控制 “群成员”
 2、点击“公开群”,  自动跳转:成员类型“实名小组”
首先是获得点击radio的事件,用的是jquery库,获得事件后判断是那个radio,通过判断是那个radio被checked了然后进行联动变换。其中遇到的问题有,兼容ie和firefox的事件,然后是设置select中的中options的selected属性。
兼容ie和firefox用了var ie=document.all;var nn6=document.getelementbyid&&!document.all;
设置select中的中options的selected属性用的是var t=document.getelementsbyname(select1)[0][1]; t.setattribute(selected,selected);
在设置selected属性通常用的是document.getelementsbyname(select1).options,但是firefox报undefined。于是遍历后就用了一个数组解决了。
下面是实现了目标1的完整代码:
html
复制代码 代码如下:
成员类型:
实名小组(使用姓名)
匿名小组(使用昵称)
群组类型:
公开群
私密群
访问控制:
任何人
群成员
js
复制代码 代码如下:
// javascript document
var ie=document.all;
var nn6=document.getelementbyid&&!document.all;
$(document).ready(function(){
$(:radio).click(function(e){
var $name=(nn6?e.target.name:event.srcelement.name);
if($name == member_type)
{
if(1 == getradiovalue($name))
{
setradiocheck(search_type,1);
var t=document.getelementsbyname(select1)[0][1];
t.setattribute(selected,selected);
}
}
});
});
实现目标2时,遇到了setradiocheck中的setattribute不好使了,调试了也不知道什么原因于是换了obj[i].checked = true;
实现功能1、2 js
复制代码 代码如下:
// javascript document
var ie=document.all;
var nn6=document.getelementbyid&&!document.all;
$(document).ready(function(){
/*点击匿名小组,自动跳转:成员类型私密群、访问控制 群成员*/
$(:radio).click(function(e){
var $name=(nn6?e.target.name:event.srcelement.name);
if($name == member_type)
{
if(1 == getradiovalue($name))
{
setradiocheck(search_type,1);
var t=document.getelementsbyname(select1)[0][1];
t.setattribute(selected,selected);
}
}
/*点击公开群, 自动跳转:成员类型实名小组*/
if($name == search_type)
{
if(1 == getradiovalue($name))
{
setradiocheck(member_type,0);
}
}
});
});
/*获得被check的radio的值
*radioname:要获得radio值的radio组名称
*/
function getradiovalue(radioname){
var obj;
obj=document.getelementsbyname(radioname);
if(obj!=null){
var i;
for(i=0;iif(obj[i].checked){
return obj[i].value;
}
}
}
return null;
}
/*设置被选中属性
*radioname:要修改属性radio组的名称
*i:radio中第i个元素被选中
*/
function setradiocheck(radioname,i){
var obj;
obj=document.getelementsbyname(radioname);
//obj[i].setattribute(checked,checked);
obj[i].checked = true;
}
对于在第二次调用setradiocheck
复制代码 代码如下:
if($name == search_type)
{
if(1 == getradiovalue($name))
{
setradiocheck(member_type,0);
}
}
obj[i].setattribute(checked,checked)的失效,还请指教。
其它类似信息

推荐信息