0

私が達成したいのはこれです:

ユーザーが有効な電子メールを入力すると、( .check)'ok' 記号が表示されます。有効でない場合は何も表示しません(とりあえず。後で何か入れます)。私は3つの電子メールフィールドを持っています。私はそれぞれを「検証」しようとしています。

<form id="emailsForm" method="POST" action="/account/recommend/">
    <div class="prepend">
        <p><strong>Emails:</strong></p>
        <div>
            <span class="added"><p class="check">ok</p></span>
            <input type="email" id="email1" class="input-text" onblur="alert(/([A-Z0-9a-z_-][^@])+?@[^$#<>?]+?\.[\w]{2,4}/.test(this.value))">
        </div>
        <div>
            <span class="added"><p class="check">ok</p></span>
            <input type="email" id="email2" class="input-text">
        </div>
        <div>
            <span class="added"><p class="check">ok</p></span>
            <input type="email" id="email3" class="input-text">
        </div>
        <button type="submit" class="submit">Send</button>
    </div>
</form>

$("form#emailsForm :input").each(function(){
    $('input').blur(function() {
        var testEmail = /^[A-Z0-9._%+-]+@([A-Z0-9-]+\.)+[A-Z]{2,4}$/i;
        if (testEmail.test(this.value)){
            $('input').siblings(".check").css('visibility', 'visible');
        }
        else {

        }
    });
});

http://jsfiddle.net/RFcaN/23/ 何が間違っているのでしょうか?

あなたの助けと提案をありがとう!

4

1 に答える 1

1

まず、入力の兄弟を見つける必要があるためthis、セレクターを から$('input')に変更します$(this)

次に、.check入力の兄弟ではありません。兄弟の末裔です。

$(this).siblings(".added").find('.check').css('visibility', 'visible');
于 2012-09-21T17:37:08.017 に答える