你好可能以前曾经问过这个问题,但是如果有人帮助我解决我的问题会很明显:
我在js函数上创建并在表单提交事件
上调用它这是js功能代码:
function checkAdd()
{
var ipad = $('#ipad').val();
var iphone = $('#iphone').val();
var url = /(http|ftp|https):\/\/[\w-]+(\.[\w-]+)+([\w.,@?^=%&:\/~+#-]*[\w@?^=%&\/~+#-])?/;
var flag=true;
var iph_check = true;
var ipad_check = true;
if(ipad.length==0)
{
$('#ipad').css('border','1px solid red');
$('#spaniPad').html('Please enter iPad image URL');
flag=false;
}
else
{
if (url.test(ipad))
{
var flag1 = 0;
$("<img/>").attr("src", ipad).load(function(e1)
{
e1.preventDefault();
var s = {w:this.width, h:this.height};
if(s.w<1536) flag1=1;
if(s.h<2048) flag1=1;
if(flag1==1)
{
$('#ipad').css('border','1px solid red');
$('#spaniPad').html('Please upload IPad Image with dimensions[w*h] (1536 * 2048) px<br><br>');
ipad_check=false;
alert('ipad='+ipad_check); //here its showing false
}
else
{
$('#ipad').css('border','');
$('#spaniPad').html('');
}
});
}
else
{
//$('#ipad').val('');
$('#ipad').css('border', '1px solid red');
$('#spaniPad').html('Please enter valid iPad image URL');
flag = false;
}
}
if(iphone.length==0)
{
$('#iphone').css('border','1px solid red');
$('#spaniPhone').html('Please enter iPhone image URL');
flag=false;
}
else
{
if (url.test(iphone))
{
var flag2 = 0;
$("<img/>").attr("src", iphone).load(function(e)
{
e.preventDefault();
var s1 = {w:this.width, h:this.height};
if(s1.w<640) flag2=1;
if(s1.h<1136) flag2=1;
if(flag2==1)
{
$('#iphone').css('border','1px solid red');
$('#spaniPhone').html('Please upload IPhone Image with dimensions[w*h] (640 * 1136) px');
iph_check=false;
alert('iphone='+iph_check); //here its showing false
}
else
{
$('#iphone').css('border','');
$('#spaniPhone').html('');
}
});
}
else
{
//$('#iphone').val('');
$('#iphone').css('border', '1px solid red');
$('#spaniPhone').html('Please enter valid iPhone image URL');
flag = false;
}
}
alert(ipad_check); //here its showing true (default value)
alert(iph_check); //here its showing true (default value)
if(flag==true && ipad_check==true && iph_check==true) alert('success');
else alert('failure');
}
这里当我在回调函数load()内部发出警报时,它显示正确的值,但是当我在回调函数之外发出相同变量的警报时,它没有显示并显示默认值。
我已经尝试过会话,cookie和隐藏输入来实现这一点,但仍然没有得到任何解决方案。
我想要ipad_check和iph_check值以检查表单中是否有任何验证错误?并根据提交表格的需要。
但是在这个现有案例中,每次我都会变得正确,甚至验证也会发生。
请看看这个jfiddle:
http://jsfiddle.net/kalpanadixit/5uXDJ/4/
在这个小提琴中,它显示成功甚至ipad和iphone消息都是假的。
如果有人对此问题有任何疑问,请帮帮我。
提前致谢。