下面有一堆单选按钮。这些单选按钮是较大表单的一部分并且是可选的,因此如果用户单击一个,然后决定他/她不希望选择该选项,则无法撤消此选项。
我想知道是否有任何jQuery等,例如,点击链接时,根据HTML中的group
名称清除所有无线电选择?
由于
答案 0 :(得分:2)
var group_name = "the_group_name";
// if jquery 1.6++
$(":radio[name='" + group_name + "']").prop('checked', false);
// prev than 1.6
// $(":radio[name='" + group_name + "']").attr('checked', false);
答案 1 :(得分:0)
var Custom = {
init: function() {
checkAllPrettyCheckboxes = function(caller, container){
// Find the label corresponding to each checkbox and click it
$(container).find('input[type=checkbox]:not(:checked)').each(function(){
if($.browser.msie){
$(this).attr('checked','checked');
}else{
$(this).trigger('click');
};
});
};
uncheckAllPrettyCheckboxes = function(caller, container){
// Find the label corresponding to each checkbox and unselect them
$(container).find('input[type=checkbox]:checked').each(function(){
$('label[for="'+$(this).attr('id')+'"]').trigger('click');
if($.browser.msie){
$(this).attr('checked','');
}else{
$(this).trigger('click');
};
});
};
我在init函数中创建了它,之后我调用了init。 } window.onload = Custom.init;
答案 2 :(得分:0)
我创建了一个类似 roberkules '的解决方案。解决方案,如果你在检查时点击radiobutton本身,我将清除radiobutton。如果您不想添加额外的" Clear"按钮到您的布局。
// Requires JQuery 1.4+ (possibly earlier)
$(function () {
// Turn off a radiobutton if clicked again while on
var checkOff = function (event) {
var target = $(event.target);
if (target.is('label')) {
// deal with clicked label
if (target.attr('for')) {
// label has 'for' attribute
target = $('#' + target.attr('for'));
} else {
// label contains a radiobutton as a child
target = target.find('input[type=radio]');
}
}
if (target.is('input:checked[type=radio]')) {
event.preventDefault();
window.setTimeout(function () {
target.attr('checked', false);
}, 200);
}
}
// Find all radiobuttons and labels inside .radio-clearable containers
$(
'.radio-clearable input[type=radio], ' +
'.radio-clearable label').mousedown(function (event) {
// When clicked -- clear if it was checked
checkOff(event);
}).keydown(function (event) {
// When receiving space, escape, enter, del, or bksp -- clear if it was checked
if (event.which == 32 || event.which == 27 || event.which == 13 || which == 46 || which == 8) {
checkOff(event);
}
});
});
用法:对于任何想要以这种方式清除的无线电按钮,将其包装在一个容器中,使用类"无线电可清除"。
通过单击或发送密钥(Space,Escape,Enter,Del,BkSp)到radiobutton元素或其标签来触发代码。