jquery - 如何从混合输入的组元素中做出选择?

标签 jquery forms jquery-selectors radio-button dom-traversal

如何选择混合输入的组元素之一?

我有以下代码:

<div class="item">
  <input type="radio" name="group1" value="value1">Value1</input>
  <input type="radio" name="group1" value="value2">Value2</input>
  <input type="radio" name="group1" value="value3">Value3</input>
  <textarea name="group1"></textarea>
</div>
  <div class="item">
  <input type="radio" name="group2" value="value1">Value1</input>
  <input type="radio" name="group2" value="value2">Value2</input>
  <input type="radio" name="group2" value="value3">Value3</input>
  <textarea name="group2"></textarea>
</div>

我想:当我们点击文本区域时,单选按钮应该丢失checked属性。 喜欢:

$('.item textarea').on('click', function(){
  $($(this).parent + 'input[type="radio":checked]').each(function(){
    $(this).checked = false;
  });
});

但是它不起作用。 我认为 parent 对象有问题。谢谢。

最佳答案

您的变体存在很多问题。首先,您的选择器构造存在问题:$($(this).parent + 'input[type="radio":checked]')。这里你将 jQuery 对象与字符串选择器混合在一起,这是不正确的。此外,父元素是通过方法 parent() 获取的,而不是属性。那么,jQuery 对象没有 checked 属性。

考虑到所描述的所有问题,我们可以获得这个可行的代码:

$('.item textarea').on('click', function() {
    $(this).siblings(":radio").prop("checked", false);
});

演示: http://jsfiddle.net/TEk9c/

顺便说一句,如果您需要在用户进入 textarea 时不仅使用鼠标 click 而是使用键盘来取消选中所有单选按钮,您可以使用 focus 事件代替。

关于jquery - 如何从混合输入的组元素中做出选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10494722/

相关文章:

jquery - 带有 Bootstrap 3、jQuery 和 PhoneGap 的移动应用程序,可能吗?

jquery - 如何在JQuery中的select标签中选择指定选项时编写if语句

jquery - 使用 jQuery 检查 div 是否有具有特定属性的子元素

jquery - 使用 jQuery 选择内部文本

jquery - 使用 &lt;input type =“file” > 时的图像格式下拉列表?

javascript - 使用 jQuery 将 Textarea 文本设置为格式正确的 HTML 代码

javascript - 在输入字段上按下回车时如何禁用表单提交

IE 中的 jQuery 表单输入计数不同

php - 无法获得 highchart 的结果

forms - Yii CActiveForm 验证错误