Я использую jquery function keypress для моего поля ввода
Теперь скажем, что я хочу знать, когда пользователь набирает букву, если это первый символ в поле. Теперь я использую что-то вроде:
element.keypress(function(e){
//...
if(elementValue.length()==0){
//Do something
}
}
Проблема заключается в том, когда пользователь выбирает текст, который набирается, а затем нажимает клавишу (скажем, для символа "А"), который ее заменяет. Затем этот код возвращает длину текста old- (скоро будет заменен).
Я знаю, что вместо этого я мог бы использовать keyup, но я думаю, что мне нужно остаться с нажатием клавиши, потому что я должен сделать некоторые проверки для нажатых физических клавиш. (этот ответ действительно показывает разницу между keyup и keypress в этом случае)
Какие-либо предложения?
Пользователь Павел С. поставил меня в правильном направлении...
Это то, что у меня есть сейчас, и это работает:
element.keypress(function(e){
//...
if(this.selectionStart==0){
//Do something
}
}
Таким образом, я обнаруживаю, когда нажата клавиша, когда каретка была только в начале поля.
<input>
и<textarea>
)