Поскольку проблема, когда типы людей быстро, я предполагаю, что это проблема производительности.
Чтобы исправить это, вы можете сделать так:
$('#FieldName').keydown(function(){
if(this.value.length==1 && this.value<<0==this.value)
{
this.value='';
alert('First letter should not be Numeric.!');
}
});
Ваш код должен работать как можно быстрее внутри обработчика событий!
Используя jQuery, вы только замедлите ваш код.
Не кэширование $(this)
замедляет еще больше!
Я использую jQuery только для того, чтобы бороться с проблемами, связанными с перекрестным браузером, и использовать событие sugested keydown
.
Можно было бы использовать это, и будет работать нормально:
document.getElementById('FieldName').onkeydown=function(){
if(this.value.length==1 && this.value<<0==this.value)
{
this.value='';
alert('First letter should not be Numeric.!');
}
}
Согласно @Kaiido, это проблема при проверке длины, когда keyup
срабатывает событие.
Если мы сохраним производительность в поле зрения, мы могли бы просто избавиться от проверки длины:
document.getElementById('FieldName').onkeydown=function(){
if(this.value.charAt(0)+1)//if it is a number, it will add 1, making it check as true
{
this.value='';
alert('First letter should not be Numeric.!');
}
});
Почему вы привязать его к KeyUp? Это действительно необходимо? Попытайтесь подумать о том, что вы на самом деле пытаетесь сделать, какова логика и пользовательский опыт, который вы пытаетесь достичь. Не просто переключите его на keydown, действительно подумайте о том, чего вы хотите достичь с этим ограничением и как вы хотите, чтобы он работал - когда у вас это есть, вы можете начать экспериментировать. – Nenotlep