jquery - 同时使用 jQuery .find() 和多个条件?

标签 jquery radio-button

我知道还有其他方法可以获取单选按钮值,但我想知道如何使用 .find() 来做到这一点。

我只想记录所选单选按钮的值,因此需要同时通过两个条件查找:

带有name=area的按钮

带有selected=selected的按钮

<div class="radio">
  <label>
    <input class="track-order-change" type="radio" name="area" id="area1" value="area1" checked="checked">
    Area 1
  </label>
</div>
<div class="radio">
  <label>
    <input class="track-order-change" type="radio" name="area" id="area2" value="area2">
    Area 2
  </label>
</div>
<div class="radio">
  <label>
    <input class="track-order-change" type="radio" name="area" id="area3" value="area3">
    Area 3
  </label>
</div>

track-order-change 类的任何内容发生更改时,它将运行 UpdateOrderSubmission 函数。

$('.track-order-change').on('change', function() { updateOrderSubmission() });

我想要 updateOrderSubmission 函数来控制台记录所选单选按钮的值。

   var updateOrderSubmission = function() {
     var orderSubmission = {
       area: $('#submit-initial-form').find('[name=area],[checked=checked]').this.val()
     }
     console.log(orderSubmission)
   };

上面的代码不起作用。如何获取所选单选按钮的值?我需要使用两个条件(名称和选中)来执行 .find(),而不仅仅是一个条件。

更新

那么为什么 $('#submit-initial-form').find('[name=area][checked=checked]').val(); 不起作用?它说“获取 submit-initial-form ID 并找到具有 name=areachecked=checked 的子元素并返回其值。

只有 $('#submit-initial-form').find(':radio[name=area]:checked').val() 有效。为什么必须指定它是单选按钮?

最佳答案

我认为,您可能需要使用:checked选择器

var updateOrderSubmission = function () {
    var orderSubmission = {
        area: $('#submit-initial-form').find('input[name=area]:checked').val()
    }
    console.log(orderSubmission)
};

演示:Fiddle

关于jquery - 同时使用 jQuery .find() 和多个条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24011262/

相关文章:

javascript - 如果 aria-label 以 "Example"开头,我如何调用它

将单选按钮放入索引后,Javascript 无法工作

java - Android - 检查单选按钮已选中

javascript - 使用 will_paginate 更新 ajax 内容

jquery - 如何无限地将 child 添加到此列表树中?

css - IE6透明+单选按钮无法点击

javascript - 再次单击单选按钮时清除检查

javascript - 从选定的单选按钮中选择下一个单选按钮

javascript - 通过 AJAX 拉入 JSON 以填充下拉列表

javascript - 阻止后退按钮 - 忽略单击按钮