0

ページに複数のフォームがあり、各フォームには検証エラーを表示する独自の「メッセージ ボックス」があります。各「メッセージ ボックス」には閉じるボタンがあります。「メッセージボックス」を閉じるための閉じるボタンを取得しても問題はありませんが、問題のあるテキスト入力からクラス「エラー」を削除する必要もあります。ページのコンテンツは ajax によって取り込まれるため、「.on」

疑似 HTML (メッセージ ボックスと閉じるボタンの一部である独自のフォーム タグにラップされたこれらすべてがいつでも 8 つあることを思い出してください。

<form action="#" method="post" id="Form6">
    <ul>
        <li>
            <label for="foo">label</label>
            <input type="text" name="foo" id="foo">
            <input type="submit" id="Button6" value="submit" />
        </li>
    </ul>
    <div id="Msg6" class="error"><a class="close">X</a><ul></ul></div>
</form>

私の試み

$('body').on('click', 'a.close', function(){
    $(this).parent().fadeOut("fast");
    $(this).closest('input[type="text"].error').removeClass('error'); // doesn't work
    $('a.close').closest('ul > li > input.error').remove();// doesn't work
    //console.log($.closest('input[type="text"].error'));//tring to log the value of the ancestor
});
4

1 に答える 1

1

これはうまくいくはずです:

$(this).parents('form').find('input.error').removeClass('error');

ただし、削除する場合は、クラスを変更する必要はありません。使用するだけ.remove()です...

于 2013-02-08T23:41:51.807 に答える