Принимайте только цифры от 1 до 9, используя JavaScript - PullRequest
3 голосов
/ 16 мая 2011

Хотелось бы знать, как принять только номер, который будет введен в поле ввода от 1 до 9, и, если введено, например, 0, выдайте сообщение с предупреждением, извините, это не правильный номер.

пожалуйста, проверьте мою функцию, которую я сделал до сих пор, но не работает .. спасибо

<input name="number1" type="text" size="1" id="number1"onkeyup="doKeyUpValidation(this)/>

doKeyUpValidation(text){
var validationRegex = RegExp(/[-0-9]+/, "g");
if(!validationRegex.match(text.value)
{
 alert('Please enter only numbers.');
}

Ответы [ 3 ]

1 голос
/ 16 мая 2011

Вы были довольно близко. Попробуйте это:

function doKeyUpValidation(text) {
    var validationRegex = RegExp(/[1-9]+/, "g");  // The regex was wrong
    if( !validationRegex.match(text.value) )
    {
        alert('Please enter only numbers.');
    }
} // this was missing before
1 голос
/ 16 мая 2011

Вам не хватает закрывающей кавычки в конце вашего атрибута onkeyup, и, как упоминает Дэвид, вам нужно изменить строку регулярного выражения на /[1-9]/

0 голосов
/ 16 мая 2011

Ваш HTML-код немного неправильный, он должен быть:

<input name="number1" type="text" size="1" id="number1" onkeyup="doKeyUpValidation(this)"/>

Между каждым атрибутом должен быть пробел, а каждый атрибут должен заключаться в кавычки.

Кроме того, ваш JavaScript имеетнесколько ошибок.Это должно быть:

function doKeyUpValidation(text) {
    var validationRegex = /[1-9]/g;
    if (!validationRegex.test(text.value)) {
        alert('Please enter only numbers.');
    }
}

Вам нужно ключевое слово function, чтобы сделать doKeyUpValidation функцией.Кроме того, ваше регулярное выражение было немного не в порядке.

Демо: http://jsfiddle.net/EqhSS/10/

...