jquery相对于表单启用/禁用了无线电

jquery相对于表单启用/禁用了无线电,jquery,html,Jquery,Html,在我的页面中,我有多个表单,当我单击单选按钮“disabled\u radio”时,我会禁用单选按钮“radio\u enabled\u disabled”,但对于相对表单id <td> <form method="post" name="form1" id="form1" action="send.php"> <div id="choice"> <input type="radio" name="enabled_radio" value="

在我的页面中,我有多个表单,当我单击单选按钮“disabled\u radio”时,我会禁用单选按钮“radio\u enabled\u disabled”,但对于相对表单id

<td>
<form method="post" name="form1" id="form1" action="send.php">
   <div id="choice">
   <input type="radio" name="enabled_radio" value="yes" />YES
   <input type="radio" name="disabled_radio" value="no" />NO
   </div>
   <div id="mydiv">
   <input type="radio" name="radio_enabled_disabled" />
   </div>
</form>
</td>
<td>
<form method="post" name="form2" id="form2" action="send.php">
   <div id="choice">
   <input type="radio" name="enabled_radio" value="yes" />YES
   <input type="radio" name="disabled_radio" value="no" />NO
   </div>
   <div id="mydiv">
   <input type="radio" name="radio_enabled_disabled" />
   </div>
</form>
</td>

对
不
对
不

首先,您需要一个固定的HTML,不使用重复使用的id和电台名称对其进行分组:

<form method="post" name="form1" id="form1" action="send.php">
   <input type="radio" name="enable_radio" value="yes">YES
   <input type="radio" name="enable_radio" value="no">NO
   <input type="radio" name="radio_enabled_disabled">
</form>
<form method="post" name="form2" id="form2" action="send.php">
   <input type="radio" name="enable_radio" value="yes">YES
   <input type="radio" name="enable_radio" value="no">NO
   <input type="radio" name="radio_enabled_disabled">
</form>
<form method="post" name="form3" id="form3" action="send.php">
   <input type="radio" name="enable_radio" value="yes">YES
   <input type="radio" name="enable_radio" value="no">NO
   <input type="radio" name="radio_enabled_disabled">
</form>

首先,您需要一个固定的HTML,不使用重复使用的id和电台名称对其进行分组:

<form method="post" name="form1" id="form1" action="send.php">
   <input type="radio" name="enable_radio" value="yes">YES
   <input type="radio" name="enable_radio" value="no">NO
   <input type="radio" name="radio_enabled_disabled">
</form>
<form method="post" name="form2" id="form2" action="send.php">
   <input type="radio" name="enable_radio" value="yes">YES
   <input type="radio" name="enable_radio" value="no">NO
   <input type="radio" name="radio_enabled_disabled">
</form>
<form method="post" name="form3" id="form3" action="send.php">
   <input type="radio" name="enable_radio" value="yes">YES
   <input type="radio" name="enable_radio" value="no">NO
   <input type="radio" name="radio_enabled_disabled">
</form>

您的HTML有一些问题,但我假设这只是一些示例代码,用于显示您正在尝试执行的操作

如果您的radio元素是要启用/禁用的表单的子元素,则可以使用在DOM中向上移动一级,并到达表单元素

$('input.disabled_radio').on('click',function(){
  $(this.parent().find('input[name="radio_enabled_disabled"]').prop('disabled','disabled');
});
这段代码将找到相对的父表单元素,并为其中包含的每个输入元素设置disabled属性

就个人而言,我喜欢尽可能详细地处理代码。我发现这大大提高了可读性。因此,我建议使用jQuery而不是
parent()
closest()
函数要求您指定要查找的父元素的类型。所以代码应该是这样的-

$('input.disabled_radio').on('click',function(){
  $(this.closest('form').find('input[name="radio_enabled_disabled"]').prop('disabled','disabled');
});
之后,要重新启用单选按钮,需要删除该已禁用的属性。为此,您可以使用此-

.prop('disabled','');

您的HTML有一些问题,但我将假设这只是一些示例代码,用于显示您正在尝试执行的操作

如果您的radio元素是要启用/禁用的表单的子元素,则可以使用在DOM中向上移动一级,并到达表单元素

$('input.disabled_radio').on('click',function(){
  $(this.parent().find('input[name="radio_enabled_disabled"]').prop('disabled','disabled');
});
这段代码将找到相对的父表单元素,并为其中包含的每个输入元素设置disabled属性

就个人而言,我喜欢尽可能详细地处理代码。我发现这大大提高了可读性。因此,我建议使用jQuery而不是
parent()
closest()
函数要求您指定要查找的父元素的类型。所以代码应该是这样的-

$('input.disabled_radio').on('click',function(){
  $(this.closest('form').find('input[name="radio_enabled_disabled"]').prop('disabled','disabled');
});
之后,要重新启用单选按钮,需要删除该已禁用的属性。为此,您可以使用此-

.prop('disabled','');

您的HTML充满了错误:重复使用ID,未使用无线组名称。您的HTML充满了错误:重复使用ID,未使用无线组名称。