JavaScript Function Problem
Здравейте, Искам да ви попитам защо в следният JS код ми се Валидира функцията за rPasswordValidation, обаче паролата когато съвпадне пак дава грешка , че не съвпада ?
Здравейте, Искам да ви попитам защо в следният JS код ми се Валидира функцията за rPasswordValidation, обаче паролата когато съвпадне пак дава грешка , че не съвпада ?
Както каза колегата по-горе, имаш недефинирана променлива във функция:
function rPasswordValidation(rPassword){ if(password != rPassword){ alert('Паролите не съвпадат'); return false; } return true; }
Забележи променливата rPassword, която съм болднал и подчертал. Нея можеш да ползваш, защото си я подал като параметър на функцията. Но от къде идва променливата password? Нямаш я във функцията, нямаш я и като глобална. Тя съществува само във функцията formValidation и никъде другаде.
Представи си г като математическа функция f(x) = x ^ 2. Това е функция, на която подаваш Х и тя ти връща квадрата от Х. Чудесно, само че твоят пример изглежда като следната математическа функция f(x) = x + y. Подаваш хикс и тя ти връща сбора на Х със У. Чудесно, само че тази функция не знае за У и то е неизвестно.
Представено в код проблемът ти изглежда така
function sum() { var x = 4; var y = 6; sumTwoNumbers(y); // подаваш само Y (6) } function sumTwoNumbers(y) { console.log(x + y); // нямаме достъп до X }
А неговото решение така:
function sum() { var x = 4; var y = 6; sumTwoNumbers(x, y); // подаваш Х и У } function sumTwoNumbers(x, y) { console.log(x + y); // имаш достъп до Х от параметрите на функцията }
function rPasswordValidation(rPassword){
if(password != rPassword){
alert('Паролите не съвпадат');
return false;
}
return true;
}
password тук ти е винаги undefined, та и затова не съвпадат. Пробвай да я подадеш на rPasswordValidation заедно с rPassword.
Имаш предвид в PasswordValidation да има и 2те валидации ? Ако е така пробвах и не става
function rPasswordValidation(password, rPassword){
if(password != rPassword){
alert('Паролите не съвпадат');
return false;
}
return true;
}
И в иф-а:
if(rPasswordValidation(password, rPassword)) {...}
Не ми стана отново :(
function rPasswordValidation(password, rPassword){
if(password != rPassword){
alert('Паролите не съвпадат');
return false;
}
return true;
}
Направих го и в горния иф: if(rPasswordValidation(password,rPassword))
Обаче проблемът е пак същия :( !
Излиза alert, че паролите не съвпадат, така ли?
Да точно :) !