2013-04-08 4 views
4

У меня возникла проблема с проверкой наличия только текстовых полей значений a-z 0-9 с использованием JavaScript.Проверьте, не содержит ли текстовое поле недопустимых символов

У меня есть текстовое поле на моей странице:

<input type="text" id="first_name" class="first_name" value=""> 

Я использую следующий JavaScript функции, чтобы проверить мое текстовое поле:

// Function to check letters and numbers 
function alphanumeric(inputtxt) 
{ 
//alert(inputtxt); 
var letters = "/^[0-9a-zA-Z]+$/"; 
if(inputtxt.value.match(letters)) 
{ 
alert('accepted'); 
} 
else 
{ 
alert('Please input alphanumeric characters only'); 
return false; 
} 
} 

И я зову свою функцию:

var test = alphanumeric(document.getElementById("first_name").value); 

Однако ничего не происходит.

Если я предупреждаю 'inputtxt' в своей буквенно-цифровой функции, он возвращает мое значение, которое у меня есть в своем текстовом поле, поэтому я знаю, что есть значение, которое нужно проверить, но оно, похоже, не идет оттуда.

Кто-нибудь знает, где я поступил не так?

Я пытаюсь сделать это с помощью JavaScript (без jQuery).

ответ

3

Вы используете .value дважды:

document.getElementById("first_name").value 

и if(inputtxt.value.match(letters))

Удалите один из них.

12

Несколько проблем:

  • плохая форма для regular expression literal (не использовать кавычки для них)
  • использование match вместо test (не ошибка, но не самый эффективный)
  • вы используете inputtxt.value но inputtxt пока значение
  • вы никогда не возвращают истинное

Вы можете использовать это:

function alphanumeric(inputtxt) { 
    var letters = /^[0-9a-zA-Z]+$/; 
    if (letters.test(inputtxt)) { 
    alert('accepted'); 
    return true; 
    } else { 
    alert('Please input alphanumeric characters only'); 
    return false; 
    } 
} 
0

Вы используете value дважды:

alphanumeric(document.getElementById("first_name").value); 

и

if(inputtxt.value.match(letters)) 

Это в основном разворачивает к

if(document.getElementById("first_name").value.value.match(letters)) 

, что не имеет смысла, поскольку объект Stringvalue не имеет собственности value, а объект undefined[...]value.value не имеет собственности match() (консоль отладки должна сказать вам столько же).

enter code here var test = alphanumeric (document.getElementById ("first_name"));

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