jQuery Vybrat vše tlačítka skupiny Radio

hlasů
2

Pracuji na dlouhou formu, která má několik přepínacích tlačítek skupin.

Ve spodní části se nachází přepínač „Ne všechny“. Když je vybrána Rád bych, aby to tak, že jsou vybrány všechny „N“ přepínačů, ale nemohu se dostat do práce. Zde je zjednodušená verze kódu:

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); 
});

});

Formulář:

<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>

Co dělám špatně?

Položena 26/08/2009 v 23:01
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
11

Oba tyto by měly fungovat - s prvním jsem se snažil udržet svůj styl. S druhým I změně stylu trochu. Se svým vzorkem, tam opravdu není způsob, jak zrušit zaškrtnutí, když si byl zkontrolován.

$("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");
});
Odpovězeno 26/08/2009 v 23:39
zdroj uživatelem

hlasů
1

To by mělo dělat to, co je potřeba ...

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

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

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

  }else{

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

  }
});

doufám, že to pomůže, Sinan.

Odpovězeno 26/08/2009 v 23:41
zdroj uživatelem

hlasů
1

Za prvé, pokud jde o Jsem si vědom, kontroluje pouze přijímá kontrolována jako platnou hodnotu v XHTML. Takže něco jako následující mělo stačit

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

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

Všimněte si změnu voliče pro Odstraňte všechny přepínač as přidáním vstupní prvek filtru není opravdu nutné, jak $ ( „# id“) volá document.getElementById.

Odpovězeno 26/08/2009 v 23:39
zdroj uživatelem

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