您检查表单中的空白字段并提醒用户。但当提醒用户它发布数据时,我不能返回false而不是刷新页面
$('#loginAccount').submit(function() {
$(this).find(':input:text').each(function(i) {
if($(this).val()=="") {
// alert($('label').eq(i).html())
$('#alert3').html('Please fill all fields.');
return false;
}
});
});
答案 0 :(得分:7)
$('#loginAccount').submit(function() {
var valid = true;
$(this).find(':input:text').each(function(i) {
if($(this).val() == "") {
// alert($('label').eq(i).html())
$('#alert3').html('Please fill all fields.');
valid = false;
}
});
return valid;
});
您目前正在从每个人返回。您需要做的是跟踪它是否有效,然后将该值用作提交的回报。
答案 1 :(得分:5)
return false;
在jQuery()中具有不同的含义。它用于打破每个。也许您可以设置在each()之后观察到的标志,以查看验证是否成功。
答案 2 :(得分:1)
您需要在submit
函数中返回false,而不是each
函数:
$('#loginAccount').submit(function() {
var isValid = true;
$(this).find(':input:text').each(function(i) {
if($(this).val()=="")
{
isValid = false;
//alert($('label').eq(i).html())
$('#alert3').html('Please fill all fields.');
}
});
return isValid;
});
答案 3 :(得分:0)
也许你应该使用closure来返回一个值?
$('#loginAccount').submit(function() {
var result = true;
$(this).find(':input:text')
.each(function(i) {
if($(this).val()=="")
{
//alert($('label').eq(i).html())
$('#alert3').html('Please fill all fields.');
result = false;
}
});
return result;
})