jquery下拉菜单单击“选择最近的收音机”

jquery下拉菜单单击“选择最近的收音机”,jquery,html,radio-button,Jquery,Html,Radio Button,我有一个项目列表,可以从下拉列表中选择值或输入自由文本。我想有一个单选按钮自动选择旁边的下拉框或文本框时,他们被点击 我有: <script type="text/javascript"> $(".click_radio").click(function() { $(this).find('input[type=radio]').prop('checked', true); }); </script> <html> <table

我有一个项目列表,可以从下拉列表中选择值或输入自由文本。我想有一个单选按钮自动选择旁边的下拉框或文本框时,他们被点击

我有:

<script type="text/javascript">
  $(".click_radio").click(function() {  
    $(this).find('input[type=radio]').prop('checked', true);
  });
</script>

<html>
  <table>
    <tr>
      <td><input type="checkbox" name="ord_55" value="yes" /> Sodium Chloride </td>
      <td><input type="RADIO" name="dose" value="drop"/> &nbsp;
        <select id="drop_dose_1" name="nsbolus_drop_dose" class="click_radio">
          <option></option>
          <option>250</option>
          <option>500</option>
          <option>1000</option>
        </select> ml
      </td>
      <td><input type="RADIO" name="dose" value="text"/> &nbsp; 
        <input type="text" size="4" id="text_dose_1" name="nsbolus_text_dose" value="" class="click_radio"/> ml
      </td>
      <td><select name="nsbolus_pri">
          <option>STAT</option>
          <option>NEXT SCH</option>
          <option>1ST DOSE TODAY</option>
        </select></td>
    </tr>
  </table>
</html>

$(“.click_radio”)。单击(function(){
$(this.find('input[type=radio]')).prop('checked',true);
});
氯化钠
250
500
1000
毫升
毫升
斯达
下一个学校
今天第一剂
我可以直接触发它,但我真的想要一个通用脚本,它可以用于后面几十个类似项目中的任何一个

谢谢

编辑
我还应该提到,只要元素都在您可以使用的同一容器中,我就使用JQuery 1.9.1。或者,您可以在输入的rel属性中提供选择器,然后单击,使用rel作为选择器来触发或设置适当的其他元素

$("text_dose_1").on('click', function() { this.siblings('input[type="radio"]').attr('checked', 'checked'); });
只要单选按钮在一个组中,其他单选按钮就应该相应地取消选中。

试试这个:

$('.click_radio').on('click change', function(){
    $(this).prev('input[type="radio"]').prop('checked', true);
});
只要无线电输入紧靠
元素之前,它就可以使用并适用于您需要的任意多个元素。单击\u radio


它在这里工作:

虽然你已经有了很好的答案,但我想我会添加我的答案,因为当前的答案无法解决你的选择框

这是一把小提琴:

我所做的更改非常简单,我使函数可重用并侦听两种类型的事件。为了选择和检查正确的收音机,我只需使用
.sillers(选择器)

下面是小提琴上的代码:

var eventHandler = function() {
  $(this).siblings('input[type=radio]').prop('checked', true);
};

$(function() {
  $(".click_radio").on({
    click: eventHandler,
    change: eventHandler
  });
});
您可以看到,我对单击和更改都重用了相同的处理程序,以确保相同的功能

编辑:这里是jQuery 1.9.1的工作示例


关于原始示例在1.9.1的jQuery中不起作用的原因,请注意类型声明
type=“RADIO”
,您正在查询
input[type=RADIO]
。如果您将其中一个更改为匹配,则它将成功执行选择(很可能是关于Sizzle选择器引擎的更改)。但是,在进行更改后,我在1.9.1中找到了一个示例,并且我已链接到一个正在使用的1.9.1小提琴。

我认为您需要处理
更改
事件
选择
元素。更改选择时会触发此事件。从jQuery 1.7和forward开始,您应该使用
.on()
而不是
.bind()
,这正是我想要的功能,但是我仍然在使用1.9.1,有什么方法可以让它在不上升的情况下工作吗?@GroundZero-我只是需要将输入类型从
RADIO
更改为
RADIO
,才能让它工作。按属性名选择时,jquery的旧版本必须区分大小写。只需检查我更新的fiddle链接以获得工作版本。这是一个很好的解决方案,它可以适应JQuery 1.9.1吗?@GroundZero是的,它可以,必要的更改是在相同的情况下指定您的类型和查询类型(即
type=“RADIO”
input[type=RADIO]
)。考虑到HTML应该都是小写的,
type=“radio”
是我选择的路径,以使示例适用于1.9.1。