2014-12-09 2 views
0

Я новичок в html и javascript, исходя из C#. Теперь я создал поле ввода, которое должно принимать только числовой ввод. Как так:Объяснение только для ввода

<input name="numemp" type="text" id="numemp" value="<%=numberofemp%>" maxlength="10" onkeypress="return isNumberKey(event)" /> 

И я нашел этот JavaScript:

function isNumberKey(evt) 
{ 
    var charCode = (evt.which) ? evt.which : event.keyCode; 
    if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) 
    { 
     return false; 
    } 
    else 
    { 
     return true; 
    }  
} 

Это не ясно для меня, я получаю это, что код проверяет нажатой клавиши является числовым. И если оно числовое, оно возвращает true. Но где код игнорирует вход? Я вижу только вернуться ложным, когда это случилось ...

+0

'return false;' означает игнорировать этот ввод ключа. – artm

+3

В javascript 'return false' означает, что действие по умолчанию для события (в данном случае - запись символа на ввод) не будет вызываться. – bemol

+1

вы можете проверить это http://stackoverflow.com/questions/1639338/why-does-returning-false-in-they-keydown-callback-does-not-stop-the-button-click. – caslaner

ответ

0

Да, действительно она не игнорирует вход он просто говорит, является ли это число или нет, я думаю, вам не нужно использовать эту функцию:

Вам нужно только HTML5 шаблон сделать это pattern="[0-9]+", и он будет автоматически управляемый:

<input name="numemp" type="text" id="numemp" value="<%=numberofemp%>" maxlength="10" pattern="[0-9]+" /> 

Взгляни на HTML pattern Attribute для получения дополнительной информации.

+0

Это не отвечает на вопрос, который попросил объяснить какой-то код. Он мог быть опубликован как комментарий. –

+0

@ JukkaK.Korpela Да, вы правы, но я только думал, что это будет лучшее решение для этой проблемы –

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