Javascript Ajax验证问题
我正在使用下面的代码通过ajax验证和发布表单数据 问题是,如果在验证期间发生错误,它不会中断过帐。这是我的密码Javascript Ajax验证问题,javascript,ajax,jquery,post,Javascript,Ajax,Jquery,Post,我正在使用下面的代码通过ajax验证和发布表单数据 问题是,如果在验证期间发生错误,它不会中断过帐。这是我的密码 var autoSaveInterval = null; var counter = 0; function call() { postViaAjax(true) } function postViaAjax(autosaveMode) { var name = $("#name").val(); var title = $("#title").val()
var autoSaveInterval = null;
var counter = 0;
function call() {
postViaAjax(true)
}
function postViaAjax(autosaveMode) {
var name = $("#name").val();
var title = $("#title").val();
var menu = $("#menu").val();
var parentcheck = $(".parentcheck:checked").val();
var id = $("#id").val();
var author_id = $("#author_id").val();
if (parentcheck == 0) {
var parent = parentcheck;
} else {
var parent = $("#parent").val();
}
var content = CKEDITOR.instances['content'].getData();
content = encodeURIComponent(content);
var dataString = 'name=' + name + '&title=' + title + '&menu=' + menu + '&parentcheck=' + parentcheck + '&id=' + id + '&parent=' + parent + '&content=' + content + '&author_id=' + author_id;
$.ajax({
type: "POST",
url: "processor/dbadd.php",
data: dataString,
dataType: "json",
success: function (result, status, xResponse) {
var message = result.msg;
var err = result.err;
var now = new Date();
if (message != null) {
if (autosaveMode) {
$('#submit_btn').attr({
'value': 'Yadda saxlanıldı ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds()
});
} else {
$.notifyBar({
cls: "success",
html: message + ' ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds()
});
}
}
if (err != null) {
$.notifyBar({
cls: "error",
html: err
});
}
}
});
};
function validate() {
var name = $("#name").val();
if (name == "") {
$.notifyBar({
cls: "error",
html: "Səhifənin qısa adını daxil edin"
});
return false;
}
var title = $("#title").val();
if (title == "") {
$.notifyBar({
cls: "error",
html: "Səhifənin geniş adını daxil edin"
});
return false;
}
var menu = $("#menu").val();
if (menu == "") {
$.notifyBar({
cls: "error",
html: "Səhifə harada yerləşəcək? Mütləq birini seçin"
});
return false;
}
var parentcheck = $(".parentcheck:checked").val();
var parent = $("#parent").val();
if (!$(".parentcheck").is(":checked")) {
$.notifyBar({
cls: "error",
html: "Ayrıca yoxsa hansısa başlıq altında? Mütləq birini seçin"
});
return false;
} else if (parentcheck == '1') {
if (parent == '0') {
$.notifyBar({
cls: "error",
html: " Parent səhifəni seçin"
});
return false;
}
}
return true;
}
$(document).ready(function () {
$('.autosave').hide();
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
}
postViaAjax(false)
e.preventDefault();
});
$('#autosave').click(function () {
if ($(this).is(':checked')) {
if (autoSaveInterval) {
clearInterval(autoSaveInterval);
}
autoSaveInterval = window.setInterval(call, 5000);
} else {
$('#submit_btn').attr({
'value': 'Yadda saxla'
});
if (autoSaveInterval) {
clearInterval(autoSaveInterval);
autoSaveInterval = null;
}
}
});
});
如何解决这个问题?我只想显示消息和中断发布更改您的“提交”功能:
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
}
postViaAjax(false)
e.preventDefault();
// Add this:
return false;
});
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
else // Add this:
return false;
}
postViaAjax(false)
e.preventDefault();
});
更改“提交”功能:
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
}
postViaAjax(false)
e.preventDefault();
// Add this:
return false;
});
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
else // Add this:
return false;
}
postViaAjax(false)
e.preventDefault();
});
另一种选择是在将数据发布到web服务器之前使用jquery验证插件。 并在java脚本文件中使用
$("#Form").validate();
另一种选择是在将数据发布到web服务器之前使用jquery验证插件。 并在java脚本文件中使用
$("#Form").validate();
更改“提交”功能:
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
}
postViaAjax(false)
e.preventDefault();
// Add this:
return false;
});
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
else // Add this:
return false;
}
postViaAjax(false)
e.preventDefault();
});
这将帮助您更改“提交”功能:
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
}
postViaAjax(false)
e.preventDefault();
// Add this:
return false;
});
$("#add_form").submit(function (e) {
if (counter === 0) {
if (validate()) {
$('.autosave').show();
counter++;
}
else // Add this:
return false;
}
postViaAjax(false)
e.preventDefault();
});
这应该对你有帮助但没有帮助。我仍然在错误消息之后直接看到成功消息。我说“我仍然看到成功消息”,你的意思是你被重定向了?(或者会显示一条ajax消息)如果您已经阅读了我的js,在ajax帖子出现关于成功的消息后,我首先会看到错误消息,然后是成功消息(它意味着ajax帖子),并使用firebug跟踪整个过程。这是照片,没用。我仍然在错误消息之后直接看到成功消息。我说“我仍然看到成功消息”,你的意思是你被重定向了?(或者会显示一条ajax消息)如果您已经阅读了我的js,在ajax帖子出现关于成功的消息后,我首先会看到错误消息,然后是成功消息(它意味着ajax帖子),并使用firebug跟踪整个过程。这是我已经为我的表格写过验证的scrshot,如果在一个地方有丢失的报税表或其他东西,为什么要重做整件事?我已经为我的表格写过验证,如果在一个地方有丢失的报税表或其他东西,为什么要重做整件事?非常感谢。上帝保佑你。这一回让我发疯了。我在这个地方呆了一阵子。如果你使用即时通讯,请给我你的联系方式。哦,非常感谢。上帝保佑你。这一回让我发疯了。我在这个地方呆了一阵子。如果你使用即时通讯,请给我你的联系人。