我使用localstoragedb作为我的本地数据库,到目前为止我所做的一切正常。但是在提交表单返回false时,不会停止提交表单。 这是代码.....
$("#registration").on("submit", function(e) {
e.preventDefault();
if ($('#username').val() === '') {
$('#username').parent().addClass('error');
return false;
};
if ($('#password').val() === '') {
$('#password').parent().addClass('error');
return false;
};
if ($('#mobile').val() === '') {
$('#mobile').parent().addClass('error');
return false;
};
localDb.queryAll("UserInfo");
localDb.queryAll("UserInfo", {
query: function(row) {
if (row.username === $('#username').val()) {
alert("username already existed");
return false;
}
}
});
localDb.insert("UserInfo", {
username: $('#username').val(),
password: $('#password').val(),
Mobile: $("#mobile").val()
});
localDb.commit();
$(".message").show();
setTimeout(function() {
window.location.replace("login.html");
}, 2000);
});
除了localDb.queryAll
函数内部以外,所有返回false都正常工作。
它会提醒我用户名已经存在,但也提交了表单。
看起来return false
有些问题。
我错过了什么或做错了什么?????
在此先感谢.........
答案 0 :(得分:0)
我在循环中犯了一个错误,因为它继续搜索每一行中的特定值以及它不会在哪里插入它。这是正确的代码......
$("#registration").on("submit", function(e) {
e.preventDefault();
if ($('#username').val() === '') {
$('#username').parent().addClass('error');
return false;
};
if ($('#password').val() === '') {
$('#password').parent().addClass('error');
return false;
};
if ($('#mobile').val() === '') {
$('#mobile').parent().addClass('error');
return false;
};
localDb.queryAll("UserInfo");
localDb.queryAll("UserInfo", {
query: function(row) {
if (row.username === $('#username').val()) {
alert("username already existed");
return false;
}
}
});
localDb.insert("UserInfo", {
username: $('#username').val(),
password: $('#password').val(),
Mobile: $("#mobile").val()
});
localDb.commit();
$(".message").show();
setTimeout(function() {
window.location.replace("login.html");
}, 2000);
});