2014-01-03 3 views
0

Я новичок-новичок, и я пытаюсь это сделать: создать регистрационную форму и калькулятор. Если вы вводите пароль менее 5 символов или имя пользователя менее 3 символов, вы не сможете продолжить. Но даже если я введу имя пользователя с более чем 3 символами и пароль с более чем 5 символами, он все еще отображает сообщение об ошибке.Javascript: требуется регистрационная форма

Код: http://pastebin.com/KqYbDJMw

var user = document.forms[0].username.value; 
var pw = document.forms[0].password.value; 

function triggerCalc(){ 
    if (pw.length < 5 && user.length < 3){ 
     alert("An error occured"); 
    } 
    else { 
     alert("Thank you for registering to my website."); 
     var action = prompt("Welcome to my calculator. For addition press 1, for substraction press 2, for multiplication press 3, for division press 4 and for square root press 5:", ""); 

     var firstNum = new Array(); 
     var secondNum = new Array(); 
     var result = new Array(); 
+1

Отправьте свой код здесь, пожалуйста. – j08691

+0

Я отредактировал соответствующие части вашего кода в вопрос - в будущем попытайтесь включить такой код в свой вопрос :) –

ответ

3

Вы хотите потерпеть неудачу, если либо из этих условий истинно, поэтому используйте || (или) вместо && (а)

if (pw.length < 5 && user.length < 3) 

должны быть

if (pw.length < 5 || user.length < 3) 

Кроме того, вы хотите, чтобы принести в текущих значенийкаждый раз вы делаете чек, так это

var user = document.forms[0].username.value; 
var pw = document.forms[0].password.value; 

должен быть внутри вашей функции. Т.е.

function triggerCalc(){ 
    var user = document.forms[0].username.value; 
    var pw = document.forms[0].password.value; 
+0

Я думал об этом, но он тоже не работает. Все такой же. – user3157145

+0

Спасибо, не знал этого. – user3157145

1

Проблема заключается в том вы получите:

var user = document.forms[0].username.value; 
var pw = document.forms[0].password.value; 

function triggerCalc(){... 

на нагрузке. Поэтому он всегда будет пустым. Чтобы получить его в тот момент, когда пользователь нажимает «продолжить», переместите его внутри функции следующим образом:

function triggerCalc(){ 
var user = document.forms[0].username.value; 
var pw = document.forms[0].password.value; 
... 
+0

Спасибо, не знал этого. – user3157145

+0

рад, что я мог бы помочь! –

0

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

function triggerCalc(){ 
     var user = document.forms[0].username.value; 
     var pw = document.forms[0].password.value; 

    if (pw.length < 5 || user.length < 3){ 
      alert("An error occured"); 
      } 

Если вы делаете какой-либо проверки, есть некоторые большие библиотеки JQuery, которые делают его большим нетерпением и просты в применении. Возможно, вам захочется выполнить быстрый поиск в Google.

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