Javascript 找到用户在JS中选择的正确按钮?
我有一张像这样的表格 我遇到的问题是试图找出DCP列上的哪个单选按钮被按下。我的Javascript如下所示:Javascript 找到用户在JS中选择的正确按钮?,javascript,jquery,html,Javascript,Jquery,Html,我有一张像这样的表格 我遇到的问题是试图找出DCP列上的哪个单选按钮被按下。我的Javascript如下所示: function disableNonSelectedRadioButtons(selectedRadioButton) { $('#payer-contract-global-table .clone-target').each(function (i) { var radioName = 'radio' + '-c' + i; if (s
function disableNonSelectedRadioButtons(selectedRadioButton) {
$('#payer-contract-global-table .clone-target').each(function (i) {
var radioName = 'radio' + '-c' + i;
if (selectedRadioButton != radioName) {
$('#' + radioName).prop("checked", false);
}
else
$('#' + radioName).prop("checked", true);
});
}
$(document).on('click', 'input[type="radio"]', function(e){
var selectedRadioName = $(this).attr('name');
disableNonSelectedRadioButtons(selectedRadioName);
});
我想,$('#'+radioName).prop(“checked”,false)
将属性设置为false,我可以找到用户选择的内容。但当我检查时,我发现的是:
<input checked="" class="radio-button" id="radio-c2" name="radio-c2" type="radio" currency-format="true" u-index="1">
首先要知道的是:只能有一个选中的单选按钮,每当选中一个单选按钮时,浏览器的默认行为是使其他单选按钮处于未选中状态。如果每个单选按钮都有相同的名称,您不必自己取消选中任何内容 有一些简单的方法可以通过jQuery获得选中和未选中的单选按钮 以下是两种好方法:
$('input[name=example]:checked'); // this finds all checked input elements with name of 'example'
$('input[name=example]').not(':checked'); // this finds all unchecked input elements with name 'example'
下面是一个示例,演示如何将其应用到工作中
函数{
var selValues=$('input[name=example]:checked').val();
$(“#选定”).text(selValues);
var非左值=[];
$('input[name=example]')。未(':checked')。每个(函数(i,收音机){
unselValues.push($(radio.val());
});
$(“#未选中”).text(未左值.join(',');
}
$(“div”)。在(“更改”,“输入[名称=示例]”,函数()上{
显示选举();
});
显示选举()代码>
1.
2.
3.
4.
所选收音机:
未选择的单选值:
取消选择所有其他元素(我在示例中使用了复选框,但您可以根据需要进行调整):
$(文档)。在('click','input[type=“checkbox”]”上,函数(e){
$('input[type=“checkbox”]:not(“#”+this.id+”).prop('checked',false);
});代码>
它将打印ID的特定单选按钮
HTML:
我明白了,您正在使用Rails。为什么不使用rails表单呢
<%= f.label :title, "Yes", :value => "true" %>
<%= f.radio_button :title, true %>
<%= f.label :title, "No", :value => "false" %>
<%= f.radio_button :title, false, :checked => true %>
“true”%%>
“假”%>
正确%>
复选框:它将返回1或0
<%= f.label :remember_me do %>
<%= f.check_box :remember_me %>
<span>Remember me on this computer</span>
<% end %>
还记得我在这台电脑上吗
但是您是否已经在var selectedRadioName=$(this.attr('name');?)上拥有所选的收音机;?。克隆目标不像您报告的那样是单选按钮的类别:class=“radio button”似乎您正在尝试对标准行为进行建模。这不是你想要的吗?还是我搞错了?如果所有单选按钮都具有相同的name=“…”
,这将是标准行为,但看起来它们是name=“radio-c1”
name=“radio_c2”
等,因此单选按钮彼此无关@JohnSmith-当您从一个集合中选择一个单选按钮时,它们都应该具有相同的名称。不确定当您可以使用id确定单击了哪个单选按钮时,为什么会提取名称属性。
$('input[type="radio"]').on('click', function(){
console.log($(this).attr('id'));
})
<%= f.label :title, "Yes", :value => "true" %>
<%= f.radio_button :title, true %>
<%= f.label :title, "No", :value => "false" %>
<%= f.radio_button :title, false, :checked => true %>
<%= f.label :remember_me do %>
<%= f.check_box :remember_me %>
<span>Remember me on this computer</span>
<% end %>