0

次のコードを使用して、グループがチェックされておらず、フォームが送信されたときにラジオボタンフィールドを強調表示しています。

チェックされたラジオボタングループのラベル要素からエラークラスが削除されるようにしたいと思います。

誰かが以下の私のコードを変更することによってこれを行う方法を教えてもらえますか?

  checkRadios : function (form) {
    var $form = $(form),
        radioGroups = $form.find(".radiogroup")
        radios = radioGroups.find("input");

radios.each(function () {
  if ($radios.is(':checked')) {
    $(this).closest("tr")
           .find("label")
           .removeClass("error");
  } else {
    $(this).closest("tr")
           .find("label")
           .addClass("error");

    $(this).on("change", function () {
      checkRadios(form);
    });
  }
});
4

2 に答える 2

1

このコードを試してください:

radioGroups.each(function () {
    if ($(this).find("input:checked").length > 0) {
       $(this).closest("tr")
           .find("label")
           .removeClass("error");
    } else {
       $(this).closest("tr")
           .find("label")
           .addClass("error");
    }
});

アイデアは、グループのループであり、各グループにチェックされたラジオがあるかどうかを確認します。

$(this).find("input:checked").length > 0
于 2013-02-28T03:39:03.260 に答える
1

これでいけると思います

function checkRadios() {
    var form = $('form')
    var grps = $('.radiogroup')
    grps.each(function(i, v){
        if($('input:checked', v).length > 0){
            $(v).closest('tr').find("label").removeClass('error');
        }else{
            $(v).closest('tr').find("label").addClass('error');
        }
    });
}

デモ:フィドル

于 2013-02-28T03:37:39.567 に答える