如何让这个Javascript在成功时将用户重定向到另一个页面,而不是向上滑动面板
How to make this Javascript redirect the user to a different page on success instead of sliding up a panel
好的,所以我不擅长Javascript。但我已经在现有的网页中继承了这篇文章,现在我需要改变它的行为。在成功完成表单的那一刻,一个窗格向上滑动,告诉用户他们的信息已经收到等。如果他们错过了一个字段或键入了错误的内容,那么它就会显示错误。表单的实际验证是在php中完成的,但它的输出是使用这个javascript段显示的。
我想继续使用现有脚本在向上滑动窗格中显示错误,但如果表单填写正确,我现在希望用户重定向到新页面
我想把window.location("新页面")放在最后会有用。。。。但它不是
有人能告诉我这个代码的哪一部分相当于"如果成功地做到了……"吗
请参阅下面的代码。。。
$(document).ready(function() {
/*ajax form*/
$('#formCallback').submit(function(){
//var opt = $("#chkTCs").is(':checked') ? $("#chkTCs").val() : null;
var action = $(this).attr('action');
$('#formCallback #submit').attr('disabled','disabled').after('<img src="../resources/images/indicator.gif" class="loader" />');
$("#message").slideUp(750,function() {
$('#message').hide();
$.post(action, {
txtName: $('#txtName').val(),
txtSurname: $('#txtSurname').val(),
txtEmail: $('#txtEmail').val(),
txtNumber: $('#txtNumber').val(),
txtPostcode: $('#txtPostcode').val(),
//chkTCs: opt,
verify: $('#verify').val()
},
function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#formCallback img.loader').fadeOut('fast',function(){$(this).remove()});
$('#formCallback #submit').attr('disabled','');
if(data.match('success') != null) $('#success.pho').slideUp('slow');
}
);
});
return false;
});
/*ajax form*/
});
更改此行:
if(data.match('success') != null) $('#success.pho').slideUp('slow');
对此:
if(data.match('success') != null){
document.location.href = "www.someexamplesite.com";
}
所以您继承了一些s***y代码,现在您需要添加一个新功能,对吗?这实际上是一个学习新事物的好机会,例如:
1) 可读性很重要,你更喜欢哪一个?
这个:
$.post(action, {
txtName: $('#txtName').val(),
txtSurname: $('#txtSurname').val(),
txtEmail: $('#txtEmail').val(),
txtNumber: $('#txtNumber').val(),
txtPostcode: $('#txtPostcode').val(),
//chkTCs: opt,
verify: $('#verify').val()
},
function(data){
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#formCallback img.loader').fadeOut('fast',function(){$(this).remove()});
$('#formCallback #submit').attr('disabled','');
if(data.match('success') != null) $('#success.pho').slideUp('slow');
}
);
});
还是这个?
$.ajax({
type: "POST",
url: action,
data: {
txtName: $('#txtName').val(),
txtSurname: $('#txtSurname').val(),
txtEmail: $('#txtEmail').val(),
txtNumber: $('#txtNumber').val(),
txtPostcode: $('#txtPostcode').val(),
//chkTCs: opt,
verify: $('#verify').val()
},
success: function (data) {
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#formCallback img.loader').fadeOut('fast',function(){$(this).remove()});
$('#formCallback #submit').attr('disabled','');
if(data.match('success') != null) $('#success.pho').slideUp('slow');
}
});
2) 避免双极编程。如果您正在使用jQuery,那么请使用jQuery
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
将此document.getElementById('message')
替换为此$('#message')
。
现在,为了回答你的问题:如果你想在动画消息出现后重定向用户,你可以使用这个:
success: function (data) {
document.getElementById('message').innerHTML = data;
$('#message').slideDown('slow');
$('#formCallback img.loader').fadeOut('fast',function(){$(this).remove()});
$('#formCallback #submit').attr('disabled','');
if(data.match('success')) {
$('#success.pho').slideUp('slow', function() {
// Animation complete.
window.location.replace("http://stackoverflow.com");
}
}
}
相关文章:
- 多次调用另一个javascript函数中的javascript函数
- HTML外部javascript加载另一个javascript
- 如何用另一个Javascript更改Javascript函数值
- 将变量值从一个javascript传递到另一个javascript
- 获取javascript函数中另一个javascript函数的响应
- 将一个javascript对象推送到另一个javascript对象中
- 如何在angularjs中调用局部视图所需的另一个javascript
- 将按钮名称和值传递给另一个 JavaScript 页面
- 从另一个 javascript 文件访问 main() 函数
- 如何使用另一个 JavaScript 文件中定义的类名调用回调函数
- 在另一个Javascript文件中包含Javascript文件并加载
- 从另一个javascript中调用函数
- 在另一个 JavaScript 文件中使用 JavaScript
- 从另一个Javascript脚本(Canvas3D)更新QML属性
- jquery+调用来自另一个Javascript包装器的函数
- 有没有一种方法可以更改函数's来自另一个javascript函数的参数
- 将变量从一个JS文件发送到另一个JavaScript文件
- Android WebView:在javascript中,有没有一种方法可以加载另一个javascript文件,并为堆栈
- 将变量从一个 JavaScript 文件传递到另一个 JavaScript 文件
- 从一个 Javascript 文件中从另一个 Javascript 文件调用函数