0

私のページにこのコードがあります

$("#ddlBirthdayDay,#ddlBirthdayMonth,#ddlBirthdayYear").change(function () {
    $("form").validate().element("#ddlBirthdayYear");
});

それを次のように変更する必要があります: I have not the focus in the three input $("#ddlBirthdayDay,#ddlBirthdayMonth,#ddlBirthdayYear"), I validate the element in the form.

jqueryでこれを行うにはどうすればよいですか??

4

3 に答える 3

1

すべての要素が同じラッパーにある場合は、focusout.
http://api.jquery.com/focusout/

:focusセレクターと一緒。
http://api.jquery.com/focus-selector/

var focusTimer = null;
$("form").on("focusout", function(){
  clearTimeout(focusTimer);
  focusTimer = setTimeout(function(){
    var focusedElements = $("#ddlBirthdayDay,#ddlBirthdayMonth,#ddlBirthdayYear").filter(':focus');
    alert(focusedElements.length);
  }, 50);
});

残念ながら、入力フィールドをタブで移動すると間違った結果が生じるため、タイムアウトを設定する必要があります。

jsfiddle デモ

于 2013-10-08T07:36:22.570 に答える
0

Sample code:

$(function(){
$('#a,#b,#c').on('blur',function(e){
    setTimeout(function(){
        if (!$('#a,#b,#c').is(':focus')) {
            alert('Lost focus on all controls');
        }
    }, 50);
});

});

Take a look at my demo: Detect if controls lost focus

于 2013-10-08T08:20:10.663 に答える