Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 找到用户在JS中选择的正确按钮?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 找到用户在JS中选择的正确按钮?

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

我有一张像这样的表格

我遇到的问题是试图找出DCP列上的哪个单选按钮被按下。我的Javascript如下所示:

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 %>