1

フォーカスされた入力フィールドのインデックスを見つけるにはどうすればよいですか?今のところ私はこのコードを持っています:

var forma = $('form#mali_oglas'),
    pomoc = $('div[role=pomoc]'),    
    input = forma.find('input[type!=hidden], textarea');

    index = input.focus().index();
    console.log(index);

私が得るのは、フォーム内の入力要素の数だけです(現時点では15)。

4

5 に答える 5

3

使用する:focus selector

index = input.index(input.filter(':focus'))
于 2012-06-04T13:09:54.187 に答える
2

http://jsfiddle.net/iambriansreed/QyUHv/

jQuery

var f = $('form');
f.click(function(){    
    $('#index').val($(':input:focus',f).index());    
});​

HTML

<form>    
<input value="hello"/><br/>
<textarea></textarea><br/>
<input/><br/>
<input/><br/>
<select><option>Option</option></select><br/>
<input/><br/>
</form><br/><br/>
Field Index with focus:
<input id="index"/>

</ p>

于 2012-06-04T13:13:27.157 に答える
1

:focusセレクターを使用する:

index = forma.find(":focus").index();
于 2012-06-04T13:07:10.653 に答える
1

$.focus() 選択した要素にフォーカスを与えます。代わりに、フォーカスされた要素を選択します。幸いなことに、jQueryはあなたをでカバーしてくれます:focus

var input = forma.find('input:focus, textarea:focus');
var index = input.index();
console.log(index);

注:[type!=hidden]非表示の入力フィールドにフォーカスを設定できないため、セレクターを削除しました。

于 2012-06-04T13:07:32.473 に答える
0

疑似クラスを使用して、フォーカスのある要素を見つけることができるはずです。

input = forma.find('input:focus, textarea:focus');

http://www.w3schools.com/cssref/sel_focus.asp

未検証

于 2012-06-04T13:07:34.953 に答える