2012-06-04 2 views
1

Как найти индекс сфокусированного поля ввода? Теперь у меня есть этот код:JQuery найти индекс сфокусированного ввода

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

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

Все, что я получаю это количество входных элементов в форме (15 на данный момент).

+0

Если вы ищете какой-либо вход, либо выберите, галочки, или радио используйте [ ':' входной селектор] (http://api.jquery.com/вход-селектор /). См. Мой [ответ] (http://stackoverflow.com/a/10881972/144665). – iambriansreed

ответ

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"/> 

+0

Это то, что я ищу. Спасибо :) – Sasha

+1

@Sasha Используйте .find() или его стенографию, как я сделал выше, чтобы найти входные элементы. : ввод является удивительным, но его следует использовать для сужения элементов из большего подмножества. – iambriansreed

1

Используйте :focus селектор:

index = forma.find(":focus").index(); 
1

$.focus()дает выбранный элемент фокус. Вместо этого вы хотите выбрать сфокусированный элемент. К счастью, у jQuery вас покрыли :focus.

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

Примечание: я удалил селектор [type!=hidden], так как скрытые поля ввода не может иметь фокус.

0

Вы должны иметь возможность использовать псевдокласс для поиска элемента с фокусом.

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

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

НЕ ПРОВЕРЕНО

Смежные вопросы