【问题标题】:Check different radio buttons at the same time with jquery [Extension]使用 jquery [扩展] 同时检查不同的单选按钮
【发布时间】:2014-11-21 01:21:07
【问题描述】:

我在link 有一个类似于这个已解决问题的问题!
此链接中有许多很好的答案,甚至将 OP 的问题扩展到多个广播组。

(我的格式与链接中的相同,但是)我的问题是我没有两个以上的无线电组,而是我的无线电组中使用 FOREACH 循环的多个元素。
我的 PHP 下面是脚本。

<?php
$query = mysqli_query($con, "SELECT example
FROM example_DB ");
while ($row = mysqli_fetch_assoc($query)){
    foreach($row as &$value) {
         if ($value == NULL) {
            echo "";
            }
        else {

?>
<form method="post">
<input data-group="A" class="A" type="radio" value="<?php echo"$value<br />\n";?>">
<?phpecho"$value<br />\n";}}}?>
</input>

</div> 
<div>    
<?php
$query = mysqli_query($con, "SELECT example
FROM example_DB");
while ($row = mysqli_fetch_assoc($query)){
    foreach($row as &$value) {
         if ($value == 0.00) {
            echo "";
            }
        else {
            ?>

<input data-group="A" class="A" ID="A" type="radio" value="<?php echo"$value<br />\n";?>">

<?php
 echo"$value<br />\n";
}}}
?>
</input>  
</div>  

  </form>

我正在使用链接中的答案之一附带的脚本:

<script>

$( document ).ready(function() {
$(function() {
var radios = $('[type=radio]');
$('input:radio').change(function(){
    var index = $( this ).index( $('[name=' + this.name + ']') );
    var groups = [];
    radios.not( $('[name=' + this.name + ']') )
    .each(function(v,i) {
        $.inArray(this.name, groups) > -1 || groups.push( this.name );
    });
    $.each(groups, function(i,v) {
        $('[name=' + v + ']').eq( index ).prop( 'checked', true );
    });
});
});
});

</script>

【问题讨论】:

  • 选择任何单选按钮后,是否要检查与所选单选按钮同名的其他组中的单选按钮?并且不想使用循环,对吗?
  • 我认为我的代码使这变得比它需要的更复杂。在给出的链接中,有两个无线电组,每个组有两个元素:RG1(A,B) 和 RG2(A1,B1)。我正在寻找工作相同的 jquery,但将其从两个元素扩展到三个:RG1(A,B,C)和 RG2(A1,B1,C1)。最终,我会将其扩展到由我的 foreach 循环确定的一些元素。
  • 回答你的问题,是的。选择任何单选按钮后,我想检查另一组中与所选单选按钮同名的单选按钮。很抱歉有任何混淆..

标签: php jquery html foreach radio-button


【解决方案1】:

试试这个:您可以阅读所选单选按钮的name 并找到所有具有相同名称的单选按钮来选择它们。

注意 - $(document).ready(..$(function(){.. 都是相同的,因此您可以使用其中任何一个,但不能同时使用。

$(function() {
  $('input:radio').change(function(){
      var name = $(this).prop('name');
      $('input:radio[name="'+name+'"]').prop('checked',this.checked);
  });
});

EDIT- 由于 OP 想要选择所有具有相同类名或值的单选按钮,请使用以下代码 -

对于相同的 -

$(function() {
  $('input:radio').change(function(){
      var className = $(this).prop('class');
      $('input:radio[class="'+className +'"]').prop('checked',this.checked);
  });
});

对于相同的价值 -

$(function() {
  $('input:radio').change(function(){
      var radioVal = $(this).val();
      $('input:radio[value="'+ radioVal +'"]').prop('checked',this.checked);
  });
});

【讨论】:

  • 我希望在具有不同名称的组之间选择单选按钮。我不认为这仍然有效?我尝试匹配组名,但这也不起作用。
  • 我可以用这个代码匹配类名或 ID,而不是匹配名称,这在无线电组之间是相同的吗?
  • 这就是我问你的,你说'我想检查另一个组中具有相同名称的单选按钮'...是的,你可以匹配类名,但 ID 不是可取的,因为你不能使用相同的多个元素的 id。
  • 请检查我的编辑回答,这应该对你有帮助。但是请确保这将与确切的类名匹配,例如如果您有 class="A" 用于选定的单选按钮,那么它将选择其他带有 class="A" 的单选按钮,而不是带有 class="A B" 的单选按钮
  • 对不起,我误解了。检查另一个组中具有相同值的单选按钮*组名称需要不同,以便我可以参考下一页中的输入。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2016-08-17
相关资源
最近更新 更多