2013-09-19 2 views
1

Я пробовал смотреть на многие обсуждения stackoverflow о том, как получить позицию курсора на клике на поле ввода (но многие из них занимаются тем, что вместо выделенной позиции вместо него используется каретка), но ничего не работает для моего очень простого требования.Получить положение курсора в <input>

Все, что я хочу, это функция, которая при нажатии на мышь возвращает позицию курсора (с точки зрения количества символов с начала) - обратите внимание, что по положению я подразумеваю положение символа.

Когда вы нажимаете где-то на редактируемом поле ввода с некоторым текстом на нем, я хочу получить позицию (с точки зрения количества символов от начала) курсора после этого щелчка - чтобы я мог запомнить это для будущего нажмите (для некоторых требований к пользовательскому интерфейсу). -

Есть ли функция jQuery (или javascript), которая будет делать? Любые обходные пути приветствуются.

Благодаря

Edit- некоторые люди направляют меня на другие должности - но, пожалуйста, обратите внимание, что я не мог использовать JQuery CARET или любой другой плагин. Все, что я получил, это jQuery.

+1

возможному дубликат [JQuery: Получить позицию курсора текста на входе без браузера конкретного кода?] (HTTP : //stackoverflow.com/questions/4085312/jquery-get-the-cursor-position-of-text-in-input-without-browser-specific-code) – TravisO

+0

Щелчок - это позиция каретки, это единственный способ получите номер там, где он находится. Они одни. –

+1

Проверьте [этот ответ.] (Http://stackoverflow.com/a/1909997/2038227) – theftprevention

ответ

0

Предположит HTML:

<input id="target" /> 

Следующий код дает координаты курсора мыши:

$('#target').click(function(jqEvt){ 
    console.log('Coordinates within textbox', jqEvt.offsetX, jqEvt.offsetY); 
    console.log('Global coordinates', jqEvt.clientX, jqEvt.clientY); 
}); 

См jQuery.Event

+0

Что мне делать с координатами? Мне нужно количество символов. Благодарю. – Tintin

0

Положите его в <input type=image/>

При использовании <input type=image/> тег, вы говорите браузер должен отправить координаты x и y, где было нажато изображение. Это позволяет вам добавлять в свои формы функциональность типа карты изображений.

+0

Но мне не нужны координаты? Мне нужно количество символов. Благодарю. – Tintin

+0

@ Тинтин Что? ** Получить позицию курсора в ** и ** Все, что я хочу, это функция, которая, когда мышь нажата, вернет позицию курсора - обратите внимание, что по положению я подразумеваю положение символа ** I 'm не чувствую себя хорошо ... –

+0

Извините, если он вводит в заблуждение - когда вы нажимаете где-нибудь на редактируемом поле ввода с некоторым текстом на нем, я хочу получить позицию символа (отсчет с начала) курсора после этого щелчка - так что Я мог помнить его позицию (для некоторых требований к пользовательскому интерфейсу). - – Tintin

3

Получено решение. Попробуйте следующий код с проверенным результатом -

<html> 
<head> 
<script> 
    function f1(el) { 
    var val = el.value; 
    alert(val.slice(0, el.selectionStart).length); 
} 
</script> 
</head> 
<body> 
<input type=text id=t1 value=abcd> 
    <button onclick="f1(document.getElementById('t1'))">check position</button> 
</body> 
</html> 

Я даю вам fiddle_demo

+0

Спасибо, это очень помогло! –

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