jQuery Selecionar tudo grupo de botões de rádio

votos
2

Eu estou trabalhando em uma forma longa que tem vários grupos de botões de rádio.

Na parte inferior há um botão de opção Não All. Quando ele é selecionado eu gostaria de fazer com que todos os N botões de rádio são selecionados, mas não posso fazê-lo funcionar. Aqui está uma versão simplificada do código:

jQuery:

$(document).ready(function(){
//initially hide the Remove All Questions
$(div.#removeAllquest).hide();

////////////  Show Remove All Questions if radio button selected 
$(input.#RemoveAll).click(function() {
  if ($(this).is(':checked'))
    $(input:radio [class*='radioR']).attr(checked,true); 
  else
$(input:radio [class*='radioR']).attr(checked,false); 
});

});

Formato:

<table>
  <tr>
    <td>Y<input type=radio name=row1 value=row1col1 class=q123col1></td>
    <td>N<input type=radio name=row1 class=radioR value=row1col2></td>
    <td>M<input type=radio name=row1 value=row1col3 class=q123col3></td>
  </tr>
  <tr>
    <td>Y<input type=radio name=row2 value=row2col1 class=q123col1></td>
    <td>N<input type=radio name=row2 class=radioR value=row2col2></td>
    <td>M<input type=radio name=row2 value=row2col3 class=q123col3></td>
  </tr>
  <tr>
    <td>Y<input type=radio name=row3 value=row3col1 class=q123col1></td>
    <td>N<input type=radio name=row3 class=radioR value=row3col2></td>
    <td>M<input type=radio name=row3 value=row3col3 class=q123col3></td>
  </tr>
  <tr> 
    <td colspan=2>No All </td>
    <td>
      <input name=RemoveAll id=RemoveAll type=radio value=Y>
    </td>
  </tr>
</table>

O que estou fazendo de errado?

Publicado 26/08/2009 em 23:01
fonte usuário
Em outras línguas...                            


3 respostas

votos
11

Ambos devem trabalhar - com o primeiro que eu tentei manter o seu estilo. Com o segundo eu mudei o estilo um pouco. Com o seu exemplo, não há realmente uma maneira de desmarcá-los uma vez que já foram verificados.

$("input.#RemoveAll").click(function() {
    if ($(this).is(':checked'))
        $("input:radio.radioR").attr("checked", "checked");
    else
        $("input:radio.radioR").removeAttr("checked");
});

$("#RemoveAll").click(function() {
    if ($(this).is(':checked'))
        $(".radioR").attr("checked", "checked");
    else
        $(".radioR").removeAttr("checked");
});
Respondeu 26/08/2009 em 23:39
fonte usuário

votos
1

Isso deve fazer o que você precisa ...

$("input.#RemoveAll").click(function() {

  if ($(this).attr('checked') === "checked"){

    $("input:radio[class*='radioR']").attr("checked","checked"); 

  }else{

    $("input:radio[class*='radioR']").removeAttr("checked"); 

  }
});

espero que ajude, Sinan.

Respondeu 26/08/2009 em 23:41
fonte usuário

votos
1

Em primeiro lugar, tanto quanto eu estou ciente verificado apenas aceita marcada como um valor válido em XHTML. Então, algo como o seguinte deve fazer o truque

$("#RemoveAll").change(function() {
    if ($(this).is(':checked'))
            $("input:radio.radioR").attr("checked","checked"); 

    else
            $("input:radio.radioR").removeAttr("checked"); 
    });
});

Observe a mudança do seletor para o remover todas botão de rádio como a adição de um filtro de elemento de entrada não é realmente necessário quanto $ ( "# id") chama document.getElementById.

Respondeu 26/08/2009 em 23:39
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more