2014-10-20 3 views
-1

Я пытался создать проверку с использованием JavaScript, в которой ввод должен быть только буквой и пробелом. Каждый раз, когда я вводил номер, он все равно пропускает ввод номера. Пожалуйста, взгляните на мой код ниже и помогите мне в том, что не так в моем коде.Проверка ввода с использованием JavaScript

function validateForm() 
{ 
    var x=document.forms["form1"]["fname"].value; 
    if (x==null || x=="") { 
     alert("Enter Firstname"); 
     return false; 
    } 
    else { 
     if (!x.value.match(/^[a-zA-Z ]+$/) && x.value != "") { 
      alert("You entered an invalid Firstname"); 
      return false; 
     } 
} 
+3

Вы упускаете окончательный 'return' заявление, а также' x' уже строковое значение. Вызов 'x.value' не будет работать – CodingIntrigue

+0

' x.value.match (...) 'должно быть' x.match (...) '. 'x.value! =" "' должно быть 'x! =" "'. –

ответ

0

Вы регулярное выражение должно представлять собой нечто вроде этого

/^[a-zA-Z\s]+$/ 

Существует специальный символ для пространства (»«) - \ s Кроме того, есть ошибка в x.value.match!. У вас уже есть значение x.

Таким образом, ваша полная функция должна выглядеть так:

function validateForm() { 
    // get the edit and get its value 
    var edit = document.forms["form1"]["fname"].value; 

    // if there are no value in the edit, or 
    // there is only spaces and the string then return false 
    if (edit.trim() == "") { 
     alert("Enter your first name"); 
     return; 
    } 

    // else if there is something, then let's check it 
    // this pattern allows any letter characters (both BIG and small) 
    // and spaces 
    // pay attention that the block inside this "if" will execute 
    // if no matches will found (e.x if there will digits in the input string) 
    // so it will works as we excepted 
    if (!edit.match(/^[a-zA-Z\s]+$/g)) { 
     alert("Enter correct first name!"); 
     return false; 
    } 

    // everything seems to be ok, return true 
    // alert('ok'); 
    return true; 
} 

Пример: http://cssdeck.com/labs/lagfrayg

+0

Hey @Mark Zucchini, я попробовал ваше исправление, но все же он не фильтрует входные данные. – Gelly

+0

Жаль @ Гелли. Впервые я не был достаточно основательным. Теперь я исправил код. –

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