Javascript 带有html属性的不可选中单选按钮';选中';
我使用一个友好的小伙子在javascript中提供的这个简单脚本来取消选中单选按钮:Javascript 带有html属性的不可选中单选按钮';选中';,javascript,jquery,html,radio-button,Javascript,Jquery,Html,Radio Button,我使用一个友好的小伙子在javascript中提供的这个简单脚本来取消选中单选按钮: $('.feed').on('click', 'input[type=radio]', function() { var myParent = $(this).closest('div'); var ref = $(this); if( myParent.data('val') == $(this).val() ){ var ref = myParent.find('.none inp
$('.feed').on('click', 'input[type=radio]', function() {
var myParent = $(this).closest('div');
var ref = $(this);
if( myParent.data('val') == $(this).val() ){
var ref = myParent.find('.none input');
ref.prop('checked',true);
}
myParent.data('val',ref.val() )
});
一切都很好,请看这个,但是当我将属性“checked”添加到一个单选按钮时,您实际上必须单击两次才能取消选中它,请看这个。这让我想到,将“checked”设置为属性实际上等于手动检查单选按钮吗?或者我为什么失败了?这与添加属性与单击无关,这是额外的代码,特别是这一行:
if (myParent.data('val') == $(this).val() ){
也就是说,如果你以前点击过这个,就把它关掉
但是,您并没有告诉代码您已经(实际上)“点击”了它
您可以通过将初始值添加到“myParent”来完成此操作,一种方法是将其添加到html:
<div data-val='1'>
更新小提琴:
var startup = $(".feed input[type=radio]:checked").first();
if (startup.length) {
startup.closest("div").data("val", startup.val())
}