2017-03-28 4 views
0

下記のように、私が書式で選択した履歴アドレスがいくつかありますので、1つを選択して"Enter"を入力してくださいメールアドレスは緑色になりますそうではない)。私は、コードのこの部分(jQueryの)を使用して、これをしなかった:JQueryでは、マウスクリックで入力を選択するときにアクションを作成する方法は?

$("#mail").keyup(function() { 

    if(!validateEmail($("#mail").val())) { 
     $("div.mail").removeClass("has-success"); 
     $("div.mail").addClass("has-error"); 
    } 
    else{ 
     $("div.mail").removeClass("has-error"); 
     $("div.mail").addClass("has-success"); 
     } 

    }); 

enter image description here

をしかし、私は代わりに「入力」を押すと、マウスで「歴史」のメールアドレスをクリックした場合に問題があり、何も(起こりませんたとえ私がメールアドレスを選んだとしても)。だから私は.mouseup()または.click()のような他のJQuery関数で試しましたが、それでも動作しません。

ご存知ですか?

答えて

0

このお試しください:要素がマウスの選択からまたはタブのいずれかからフォーカスを取得するとき

$('#selector').focus(function(){ 
    // your code here 
}); 

focusイベントが発生します。

+0

こんにちは、それは動作しません、申し訳ありません – ThisIsMe

0

あなたがjQuery.change()方法をしようとする場合があります:

$("#mail").change(function() { 

    if(!validateEmail($("#mail").val())) { 
     $("div.mail").removeClass("has-success"); 
     $("div.mail").addClass("has-error"); 
    } 
    else{ 
     $("div.mail").removeClass("has-error"); 
     $("div.mail").addClass("has-success"); 
    } 

}); 
+0

申し訳ありませんが、 – ThisIsMe

0

私はblurを使用することをお勧めします。これは、要素がフォーカスを失ったときに発生します。 keyupを使用すると、キーを押すたびに実行されますが、これは実行したくない操作です。

$("#mail").on('blur', function() { 
    if(!validateEmail($("#mail").val())) { 
     $("div.mail").removeClass("has-success"); 
     $("div.mail").addClass("has-error"); 
    } 
    else{ 
     $("div.mail").removeClass("has-error"); 
     $("div.mail").addClass("has-success"); 
    } 
}); 
+0

こんにちは、それは私が履歴項目を選択したときに、私は変更する色を必要とし、望むものではありません動作しませんクリックして – ThisIsMe

+0

入力ボックス内の履歴項目ですか?すべてのキーストロークでこのタイプのチェックを実行することは少し過度です。何があっても、最初のキーストロークは有効なメールアドレスから始まらない。 – krillgar

0

$(function() { 
 
    $("#mail").on('keyup', function() { 
 

 
    if (!validateEmail($("#mail").val())) { 
 
     $("#mail").removeClass("has-success"); 
 
     $("#mail").addClass("has-error"); 
 
    } else { 
 
     $("#mail").removeClass("has-error"); 
 
     $("#mail").addClass("has-success"); 
 
    } 
 

 
    }); 
 

 
$('input').on('change', function() { 
 

 
    if (!validateEmail($("#mail").val())) { 
 
     $("#mail").removeClass("has-success"); 
 
     $("#mail").addClass("has-error"); 
 
    } else { 
 
     $("#mail").removeClass("has-error"); 
 
     $("#mail").addClass("has-success"); 
 
    } 
 
}); 
 

 
    function validateEmail(email) { 
 
    var re = /^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
 
    return re.test(email); 
 
    } 
 
});
.has-success { 
 
    border-color: green; 
 
} 
 

 
.has-error { 
 
    border-color: red; 
 
}
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 
 
<input id='mail' value='' />

+0

こんにちは、スニペットを実行する=>入力をクリック=>矢印付きの歴史研究を選択=>口でそれをクリック=>まだ赤い(緑の代わりに) – ThisIsMe

関連する問題