今天下午遇到的坑,天大的坑啊,表单clear后,radio赋值无效。去除clear后却可。我用的以下方法尝试,都失败。最终问了项目经理,用末尾方法实现了。
以下方法
//取radio的值
$("input[name='radioName'][checked]").val();
//给radio 赋值, 选中值为2的radio:
$("input[name='radioName'][value=2]").attr("checked",true);
官方的方法是这样写:
//获取选中值,三种方法都可以:
$('input:radio:checked').val();
$("input[type='radio']:checked").val();
$("input[name='rd']:checked").val();
//设置第一个Radio为选中值:
$('input:radio:first').attr('checked', 'checked');
//或者
$('input:radio:first').attr('checked', 'true');
//注:attr("checked",'checked')= attr("checked", 'true')= attr("checked", true)
//设置最后一个Radio为选中值:
$('input:radio:last').attr('checked', 'checked');
//或者
$('input:radio:last').attr('checked', 'true');
//根据索引值设置任意一个radio为选中值:
$('input:radio').eq(索引值).attr('checked', 'true');索引值=0,1,2....
//或者
$('input:radio').slice(1,2).attr('checked', 'true');
//根据Value值设置Radio为选中值
$("input:radio[value=http://www.2cto.com/kf/201110/'rd2']").attr('checked','true');
//或者
$("input[value=http://www.2cto.com/kf/201110/'rd2']").attr('checked','true');
//删除Value值为rd2的Radio
$("input:radio[value=http://www.2cto.com/kf/201110/'rd2']").remove();
//删除第几个Radio
$("input:radio").eq(索引值).remove();索引值=0,1,2....
如删除第3个Radio:$("input:radio").eq(2).remove();
//遍历Radio
$('input:radio').each(function(index,domEle){
//写入代码
});
此方法有效:
$("input[name='GENDER'][value=" + object.GENDER + "]").prop("checked", "checked");//object..是请求得到的数据
$("input[name='MARRIAGE'][value=" + object.MARRIAGE + "]").prop("checked", "checked");
$("input[name='JOBTYPE'][value=" + object.JOBTYPE + "]").prop("checked", "checked");
总结:
- 对于HTML元素本身就带有的固有属性,在处理时,使用prop方法。
- 对于HTML元素我们自己自定义的DOM属性,在处理时,使用attr方法
举一个例子:
<input id="chk1" type="checkbox" />是否可见
<input id="chk2" type="checkbox" checked="checked" />是否可见
像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些也属于固有属性,因此需要使用prop方法去操作才能获得正确的结果。
$("#chk1").prop("checked") == false $("#chk2").prop("checked") == true
如果上面使用attr方法,则会出现:
$("#chk1").attr("checked") == undefined
$("#chk2").attr("checked") == "checked"