如何找出用户在Javascript中选择的单选按钮?

时间:2016-03-02 21:12:58

标签: javascript jquery html haml

我的表格看起来像这样 enter image description here

现在,我遇到的问题是用户可以选择多个单选按钮。他们应该只能选择1。 我有一个Javascript函数,它将遍历所有行并禁用未在此处看到的按钮。

<?php
foreach (glob("blah/*.jpg") as $filename) {
    echo "<div class='cp-thumb cp-masonry cp-thumbs616 masonry-brick'><img src='blah/". $filename . "'class='img_235x235' /></div>";
}
?>

这很有效。但我需要向此函数发送正确的function disableNonSelectedRadioButtons(selectedRadioButton) { $('#payer-contract-global-table .clone-target').each(function (i) { var radioName = 'radio' + '-c' + i; if (selectedRadioButton != radioName) $('#' + radioName).prop("checked", false); }); } 。我怎样才能在Javascript中正确执行此操作?

目前HAML看起来像这样:

selectedRadioButton

Javascript中是否存在某些类型的代码,我可以这么说 如果我单击 %input.radio-button{:name => "radio-c#{index}", :type => "radio", :id => "radio-c#{index}", :checked => "true"} 的按钮,它会将其发送到我的功能吗?

3 个答案:

答案 0 :(得分:3)

如果你想使用jQuery:

  $('input[type="radio"]').click(function(e){
       var selectedRadioName = $(this).attr('name');
       disableNonSelectedRadioButtons(selectedRadioName);
  });

如果您要动态创建元素,请使用事件委派:https://learn.jquery.com/events/event-delegation/

 $(document).on('click', 'input[type="radio"]', function(e){
       var selectedRadioName = $(this).attr('name');
       disableNonSelectedRadioButtons(selectedRadioName);
 });

也就是说,您可以使用HTML:

<input type="radio" name="giveThemAllTheSameName" />

通过给单选按钮指定相同名称,您只能选择一个。

答案 1 :(得分:2)

如果您遇到事件未被触发,则会发生这种情况,因为DOM元素是动态生成的(我认为......)我这样解决:

$(document).on('click', 'input[type="radio"]', function(e){
   var selectedRadioName = $(this).attr('name');
   disableNonSelectedRadioButtons(selectedRadioName);
});

以防万一。

答案 2 :(得分:0)

您可以使用prop()

arr.getJSONObject(index)