2013-05-05 2 views
1

У меня есть подписная форма на моем веб-сайте, которую я пытаюсь проверить. Когда пользователь нажимает кнопку регистрации, вызывается функция validate(), и поля должны проверяться, но не заставляя ее работать.Код подтверждения формы JavaScript не дает желаемых результатов

Очевидно, что в моем коде есть некоторые ошибки. Я пытался исправить это с помощью небольшого знания, которое у меня есть, но не может заставить его работать. Я был бы очень признателен, если бы вы могли указать мне правильные указания относительно того, что я делаю неправильно.

код следующим образом:

function validate() 
{ 
    var name = document.getElementById("name").value; 
    var phone = document.getElementById("phone").value; 
    var nat = document.getElementById("nat").value; 
    var address = document.getElementById("address").value; 
    var town = document.getElementById("town").value; 
    var zip = document.getElementById("zip").value; 
    var userName = document.getElementById("userName").value; 
    var password = document.getElementById("password").value; 
    var password2= document.getElentById("password2").value; 

    if (name == "") 
    { 
     window.alert("Please Enter your Full Name") 
    } 
    checkNr= isNaN(phone) 

    if(checkNr == true) 
    { 
     window.alert("You can only enter numbers. Please try again") 
    } 

    if (nat == "") 
    { 
     window.alert("Please enter your nationality") 
    } 

    if (address == "") 
    { 
     window.alert("Please Enter your address") 
    } 

    if (password != password2) 
    { 
     window.alert("Your passwords did not match. Please re-enter") 
    } 
} 

</script> 

HTML:

<form name="subscribe"> 
    FULLNAME: </strong><input type="text" id="name"/><br /> 
    PHONE NR: <input type="text" id="phone" onblur="validateForm()" /><br /> 
    NATIONALITY:<input type="text" id="nat" /><br /> 
    Address:<input type="text" id="address" /><br /> 
    Town:<input type="text" id="town" /><br /> 
    Zip Code: <input type="text" id="zip" /><br /> 
    Username: <input type="text" id="userName" /><br /> 

    Password:<input type="password" name="password" /><br /> 
    Retype:<input type="password" name="password2" /><br /> 
    <input type="button" value="submit" onclick="validate()" /> 
</form> 
+1

вы можете поместить свой HTML код часть? – polin

+0

Я добавил код HTML, чтобы поблагодарить вас за ваш комментарий и помощь –

+0

@TimothyCoetzee Проверьте это http://jsfiddle.net/RXR7t/ – PSL

ответ

0

Я нашел ошибку. Похоже, вы не можете использовать document.get с полем ввода пароля. Я вынул пароль, и он сработал. Было бы здорово, если бы я мог получить от кого-то больше информации о том, почему.

+1

Вы можете сделать что. проблема в том, что «пароль» не является идентификатором, это тип. Вы забыли добавить id в эти поля. –

+0

Также у вас есть «getElen», а не getElement на одном из них. –

1

Я нашел эти ошибки в коде:

  1. нет validateForm() функции, заданной в вашем поле ввода телефона
  2. , если вы хотите, чтобы ваша форму для отправки данных, установить тип submit, не button на вашем кнопка отправить
  3. , если вы хотите, чтобы остановить форму, направляющую, когда что-то не заполнено, зацепить onsubmit события формы:

    <form onsubmit="return validate()"> ... // note the return keyword 
    

и сценарий

function validate() { 
    ... 
    if(somethingIsWrong) return false; // false stops submitting 
    else return true; // do submit 
} 

также отметить getElentById опечатку упоминаемых @FranciscoAfonzo

0

нескольких предложений:

  1. В сравнениях JavaScript выполняется с помощью === (равным) и !== (не равно).

  2. Если у вас есть только имя переменной в цикле if, которое также будет достаточным. как:

    if (address) 
    { 
        window.alert("Please enter your address") 
    } 
    
+0

== сравнение, === строгое сравнение https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Comparison_Operators –

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