1

次のコードはajaxを介して生成されています:

<div class="momento-rating-input">
    <div>Rate this post</div>
    <div>
        <input type="radio" name="rateit" value="3" style="margin: 0 0.5ex 3px;" class="ratems" />Good
        <input type="radio" name="rateit" value="2" style="margin: 0 0.5ex 3px;" class="ratems" />Average
        <input type="radio" name="rateit" value="1" style="margin: 0 0.5ex 3px;" class="ratems" />Bad
    </div>
</div>

Javascript / JQueryで、選択したラジオをクリアする必要があります。次のコードを試してみます。

$('input[type="radio"]').each(function(){
    if($(this).hasClass('ratems')){
        $(this).checked = false;
    }
});

上記のコードは機能していません。liveJQueryまたはon関数を使用して、AJAXで生成された要素にイベントを登録する必要があることはわかっています。

ただし、イベントを登録したくはありませんが、別のイベントでラジオボタンをクリアすると、問題なく起動します。

これらのラジオボタンをクリアするにはどうすればよいですか?

必要に応じて、コンテキストはほとんどありません:このコードはライトボックスに実装されており、左/右キーを押すと画像が変更されます。新しい画像の場合、ratingラジオボタンをオフにする必要があります。

4

3 に答える 3

1

これを試して、クラス名のラジオボタンのチェックを外すことができますratems

$('input[type="radio"].ratems').prop('checked', false);

使用する代わりに$('input[type="radio"]').each(..)

于 2012-10-05T10:41:28.563 に答える
1

checked要素から属性を削除するだけです。

$('input[type="radio"].ratems').removeAttr("checked");
于 2012-10-05T10:31:42.347 に答える
1

$(this).checked = false;に置き換えてみてください$(this).removeAttr('checked');

于 2012-10-05T10:37:59.780 に答える