jQuery Выбрать все группы радиокнопок - PullRequest
2 голосов
/ 27 августа 2009

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

Внизу есть переключатель "Нет всего". Когда он выбран, я хотел бы сделать так, чтобы были выбраны все кнопки «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>

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

Ответы [ 3 ]

11 голосов
/ 27 августа 2009

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

$("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");
});
1 голос
/ 27 августа 2009

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

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

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

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

  }else{

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

  }
});

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

1 голос
/ 27 августа 2009

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

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

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

Обратите внимание на изменение селектора для переключателя удалить все, так как добавление фильтра элемента ввода на самом деле не требуется, так как $ ("# id") вызывает document.getElementById.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...