我不知道该怎么办,为什么它不工作这是我第一次尝试这样的事情。问题jQuery。。提交()和变量
这里是它的一个小提琴http://jsfiddle.net/ProjectV1/LVPtN/
你会发现在JavaScript中我有一个变种错误,默认为false。
如果出现错误,则为真。
我在窗体上的每个输入旁边都显示了错误的值。
如果变量错误是错误的,它应该提交表单并且不应该为false。
发生错误时出现问题,然后纠正表单不会提交。
看小提琴。该表单直接用于Google测试。
我不知道该怎么办,为什么它不工作这是我第一次尝试这样的事情。问题jQuery。。提交()和变量
这里是它的一个小提琴http://jsfiddle.net/ProjectV1/LVPtN/
你会发现在JavaScript中我有一个变种错误,默认为false。
如果出现错误,则为真。
我在窗体上的每个输入旁边都显示了错误的值。
如果变量错误是错误的,它应该提交表单并且不应该为false。
发生错误时出现问题,然后纠正表单不会提交。
看小提琴。该表单直接用于Google测试。
我觉得,问题是error
在函数里面会被调用模糊。当函数调用完成后,它就不确定了。这笔交易是变量应该是全球性的。你需要把这个$(document).ready()
上述这应该工作:
var error = false;
$('#joinForm input').blur(function() {
var id = $(this).attr('id');
var val = $(this).val();
if (id == 'email') {
$('#emailMsg').hide();
if (val == '') {
error = true;
$('#' + id).after('<div id="emailMsg" class="error">' + error + '</div>');
}
else {
$('#' + id).after('<div id="emailMsg" class="success">' + error + '</div>');
}
}
if (id == 'cemail') {
$('#cemailMsg').hide();
}
if (id == 'password') {
$('#passwordMsg').hide();
if (val == '') {
error = true;
$('#' + id).after('<div id="passwordMsg" class="error">' + error + '</div>');
}
else {
$('#' + id).after('<div id="passwordMsg" class="success">' + error + '</div>');
}
}
if (id == 'cpassword') {
$('#cpasswordMsg').hide();
}
if (id == 'username') {
$('#usernameMsg').hide();
if (val == '') {
error = true;
$('#' + id).after('<div id="usernameMsg" class="error">' + error + '</div>');
}
else {
$('#' + id).after('<div id="usernameMsg" class="success">' + error + '</div>');
}
}
$('#joinForm').submit(function(){
if (error == true) {
return false;
}
else {
return true;
}
});
});
试过它没有运气:/更新
好吧,我尝试了你的想法后,我意识到,如果有错误因为变量没有在函数中设置,所以之前发生。所以我更新了它,以便error = false;在所有成功的状态下,它现在可以与在函数外声明的变量一起使用,值为null ...感谢您的输入。 –
根据我的说法,验证需要被放入一个不同的函数,它返回true或false。在模糊处,调用此函数更新错误变量。在validate()函数中,保留一个临时变量,该变量最初表示为true,如果有任何错误,它应该继续前进,但不允许任何其他字段验证将其值从false更新为true。最后返回temp变量的状态。 –
我认为你需要做一个关联数组与要检查有关错误输入每一个元素。然后,在执行提交事件时,可以遍历数组查看哪些输入处于错误状态。如果有,请阻止提交完成。 –
好的,现在试试这个,谢谢 –