2011-02-02 9 views
0

1つのテキスト入力フィールドと1つのボタンがあります。JQueryでは、現在フォーカスのある要素をどのように読み込むのですか?

<input type="text" id="myInput" onblur="saveValue();" />  
<input type="button" id="myButton" /> 

ぼかしイベント(入力フィールド)では、関数(saveValue)が呼び出されます。現在のフォーカスがボタン(myButton)の場合は、その関数を呼びたくありません。

JQueryでどうすればいいですか?

答えて

0

あなたは試すことができます:私は何かを見逃している場合

if(!$('#myButton').is(':focus')) 
    ... 
0

わからないが、なぜちょうどのみの入力フィールドにblurイベントをバインドできません:あなたは簡単に試すことができ

$("#yourInputId").live("blur", function() 
{ 
    saveValue(); 
}); 
+0

これはOPがすでに(関数はボタンのblurイベントにバインドされていない)やっているようです。 –

+0

ええ、私が示唆していたものに類似したOPが変更されました:) – FutureBoy

0

。 jQueryのフォーラムで。

$(':focus').each(function(){  
    if($(this).attr('id') == 'myButton'){ 
    //do stuff here 
    } 
}); 

このpostが、これはほとんどの場合に機能することを示唆しています。

1

次の要素がフォーカスされる前に1つの要素がぼやけているため、確実に行うことはできません。最も近い近似は、ボタンがフォーカスされている場合にクリアするタイムアウトを設定することです:

$(document).ready(function(){ 
    var timer; 

    $('input').blur(function(){ 
     timer = setTimeout(saveValue, 100); 
    }); 

    $('#myButton').focus(function(){ 
     clearTimeout(timer); 
    }); 
}); 
0

私はあなたの質問を正しく理解しているかどうかわかりません。ここに私の試みです: 入力テキストのためのCSSクラスを作成し、そのように参照するためにjqueryを使用します。ここで

は、コードサンプルです:

<input type="text" id="txtName" class="input-text" /> 
<input type="submit" value="Submit"/> 

<script type="text/javascript"> 
$(function(){ 
    $('.input-text').blur(function(){ 
    var $this = $(this); 
    //Call function save value by passing the reference of the current object 
    SaveValue($this); 
    }); 
}); 
</script> 
関連する問題