Javascript: требуется помощь при регистрации

0

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

Код: 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
    Разместите свой код здесь, пожалуйста.
  • 0
    Я отредактировал соответствующие части вашего кода в вопросе - в будущем постарайтесь включить такой код в ваш вопрос :)
Теги:

3 ответа

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
    Я думал об этом, но это тоже не работает. Все еще такой же.
  • 0
    Спасибо, не знал этого.
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
    Спасибо, не знал этого.
  • 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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню