JQuery Выбрать все кнопки группы радио

голоса
2

Я работаю на длинной форме, которая имеет несколько кнопок радио групп.

В нижней части есть кнопка радио «Нет All». Когда он выбран я хотел бы сделать это так, чтобы все кнопки радио «N» выбраны, но я не могу заставить его работать. Вот упрощенная версия кода:

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

});

Форма:

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

Что я делаю не так?

Задан 26/08/2009 в 23:01
источник пользователем
На других языках...                            


3 ответов

голоса
11

Оба они должны работать - с первым я пытался сохранить свой стиль. Со вторым я изменил стиль немного. С вашим образцом, есть на самом деле не способ, чтобы снять их, когда они уже были проверены.

$("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");
});
Ответил 26/08/2009 в 23:39
источник пользователем

голоса
1

Это должно делать то, что вам нужно ...

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

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

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

  }else{

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

  }
});

надеюсь, что это помогает, Синана.

Ответил 26/08/2009 в 23:41
источник пользователем

голоса
1

Во-первых, насколько я знаю, проверил принимает только проверил как допустимое значение в XHTML. Так что-то вроде следующего должен сделать трюк

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

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

Обратите внимание на изменение селектора для удалить все кнопки радио как добавление элемента ввода фильтра не действительно необходимы, так как $ ( «# идентификатор») называет document.getElementById.

Ответил 26/08/2009 в 23:39
источник пользователем

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