PDA

View Full Version : سوال: مشکل با 2 رویداد ؟



redhat2
چهارشنبه 19 تیر 1392, 21:42 عصر
سلام ، به دوستان ، من کد زیرو نوشتم ، وقتی که تابع blur ، یک مقدار true را باز می گردانه ، و وقتی روی submit کلیک می کنم ، کار نمی کنه ، مشکلش چیه ؟ .


$(document).ready(function(){
var result_false = emailfuncs();
$("#form-login-submit").submit(function(e){
if(!result_false)
{
e.preventDefault();
}
});
});
function emailfuncs()
{
$("input[name=email]").blur(function(){
var email = $("input[name=email]").val();
if(element_check(email))
{
$("#check-username").css("opacity","0");
if(!validate_email(email))
{
$("#check-username").css("opacity","1");
$("#check-username").css("color","tomato");
$("#check-username").html("ایمیل مورد نظر نا معتبر است . ");
return false;
}
else
{
$("#check-username").css("opacity","0");
return true;
}
}
else
{
$("#check-username").css("opacity","1");
$("#check-username").css("color","tomato");
$("#check-username").html("فیلد مورد نظر خالی است . ");
return false;
}

});
}

jalil_gh
چهارشنبه 19 تیر 1392, 23:15 عصر
تو کدی که شما نوشتید emailfuncs همیشه مقدار undefined برمیگردونه

redhat2
پنج شنبه 20 تیر 1392, 08:48 صبح
خوب چیکار باید کرد برای اینکه درست کار کنه ؟

jalil_gh
پنج شنبه 20 تیر 1392, 12:37 عصر
شما دو تا event handler دارید. یکی برای submit کردن و دیگری برای blur. شما میتونید هر دو این event handler ها رو ببرید داخل document.ready. و برای اینکه مشخص کنید که ایمیل معتبر هست یا نه از یک متغیر استفاده کنید. هر وقت ایمیل معتبر بود اون متغیر true بشه. داخل submit هم میتونید چک کنید اگه این متغیر true بود اجرا بشه.
$(document).ready(function(){

var emailIsValid = false;

$("input[name=email]").blur(function(){
var email = $("input[name=email]").val();
if(element_check(email))
{
$("#check-username").css("opacity","0");
if(!validate_email(email))
{
$("#check-username").css("opacity","1");
$("#check-username").css("color","tomato");
$("#check-username").html("ایمیل مورد نظر نا معتبر است . ");
//return false;
}
else
{
$("#check-username").css("opacity","0");
//return true;
emailIsValid = true;
}
}
else
{
$("#check-username").css("opacity","1");
$("#check-username").css("color","tomato");
$("#check-username").html("فیلد مورد نظر خالی است . ");
//return false;
}

$("#form-login-submit").submit(function(e){

if(!emailIsValid)
{
e.preventDefault();
}

});
});

redhat2
جمعه 21 تیر 1392, 21:33 عصر
حالا اگه یه فیلد pass هم داشته باشیم و بخوایم با کد بالا ترکیب کنیم یعنی چک کنیم ببینیم فیلد pass خالی است یا نه ، چی باید نوشت ؟