我正在尝试将单选按钮标记为click()
,但如果禁用了广播,则该功能无效。
我该怎么办?
答案 0 :(得分:3)
您想使用.prop()
方法。 .attr()
很难检测到跨浏览器的真实性
$('input:radio:disabled').prop('checked', true);
^这将自动检查任何已禁用的。
如果你希望它在某种点击事件等......你会这样做:
$('input:radio').prop('checked', true);
答案 1 :(得分:1)
唯一的解决方案来自javascript / jquery - (jquery最简单的例子)
<input type="radio" id="test" name="test_name" disabled="disabled" />
$(document).ready(function() {
$('#test').attr('checked', 'checked');
});
看到这个jsFiddle http://jsfiddle.net/7XevT/1/
答案 2 :(得分:0)
唯一可以做到这一点的方法是在单选按钮前放置一个元素(例如div)并检查其上的点击次数。
在禁用的元素上禁用鼠标事件(有充分理由......您已禁用它!)
然而,可能有更好的方法来做你想做的事。我无法想象有人点击禁用的单选按钮。另外,如果您想要一个可点击的单选按钮,那么请不要禁用它!
答案 3 :(得分:0)
click
事件*是错误的使用方法。禁用的元素不会被单击(因为它们已被禁用),因此触发click
事件没有任何好处。
<input type="radio" />
和<input type="checkbox" />
元素具有checked
属性,需要进行修改才能更改其已检查状态:
<input id="r" type="radio" name="foo" value="bar" disabled />
<script type="text/javascript">
document.getElementById('r').checked = true;
</script>
<input id="r" type="radio" name="foo" value="bar" disabled />
<script type="text/javascript">
$('#r').prop('checked', true);
</script>
*或函数,无法判断您正在使用哪个。我假设它是jQuery.fn.click
,它会触发一个事件。
答案 4 :(得分:0)
disabled
输入不会触发click事件。一种hackish方式是用另一个元素包装一个收音机:
<span class='radio'><input type='radio' disabled/></span>
$('.radio').click(function(){
var $input = $(this).find('input');
$input.prop('checked', !$input.prop('checked'))
})
但我不确定为什么输入应该是disabled
当它的检查状态可以改变!!
答案 5 :(得分:0)
比赛迟到了,但是你可以添加一个可以放在单选按钮上的临时<span>
,这会产生你点击它的效果:
$('input[disabled="disabled"]').each(function(){
$(this).wrap('<span style="position:relative;"></span>')
$(this).parent().append('<span class="disabled" style="left:0; top:0; position:absolute; display:block; width:100%; height:100%;"> </span>');
})
$('.disabled').click(function(){
$(this).prev().removeAttr('disabled').attr('checked', 'checked').attr('disabled', 'disabled').unwrap();
$(this).remove();
})
查看小提琴 - http://jsfiddle.net/FTymF/
您还可以切换已禁用的单选按钮:
$('.disabled').click(function(){
if($(this).prev().attr('checked'))
$(this).prev().removeAttr('disabled').removeAttr('checked').attr('disabled', 'disabled');
else
$(this).prev().removeAttr('disabled').attr('checked','checked').attr('disabled', 'disabled');
})
查看小提琴 - http://jsfiddle.net/FTymF/1/