奇怪的重定向错误
Weird redirection error
我有一个jQuery日期选择器。我写了一个函数,当用户点击日期时,它会添加一个URL参数(日期)。如果设置了日期,我希望使用日期选择器的setDate
方法将日期设置为URL参数。如果未设置,将使用今天的日期。我已经完成了从URL获取日期的操作,但日期选择器的日期尚未设置。奇怪的是,如果我只是手动将?date=xxxxx
添加到url中,它就可以完美地工作。因此,当我尝试使用onSelect
进行重定向时,就会发生这种情况
页面可在此处查看。
可以查看此页面以查看手动添加参数的效果。
它与重定向无关。这与你页面上事件的顺序有关。在不起作用的页面上,您在$(function () {})
中进行了.datepicker
初始化,这意味着它将在DOM就绪时运行(在Javascript的其余部分之后)。这只是绑定一个事件。然后,在绑定事件之后,立即尝试调用.datepicker("setDate",qs_date)
。但您不能这样做,因为您的日期选择器尚未初始化,因为$(function() {})
中的函数尚未执行。你应该使用这个代码:
$(function() {
$("#datepicker").datepicker({
onSelect: function(date, picker){
var url = "http://wwwdev.cco.purdue.edu/asp/Calendar/matt_test.asp?date=" + date;
window.location = url;
}
});
var qs_date = location.href.match(/[?&]date=([^&#]+)/);
if (qs_date){
qs_date = qs_date[1];
alert(qs_date);
$("#datepicker").datepicker("setDate",qs_date);
}
});
在工作示例中,您不使用$(function () {})
,因此会立即初始化日期选择器,然后根据查询字符串设置日期。上面的代码有效地做了同样的事情,只是从技术上讲,它可以放在页面上的任何地方。处理DOM的内联Javascript需要在DOM渲染后运行。这就是工作示例工作的原因,也是$(function () {})
所保证的。
我相信有一种更好的方法可以通过它的初始化选项在日期选择器上初始设置日期,但我提供的应该做同样的事情,只是有点不必要。
更新:
我认为defaultDate
选项允许您在初始化中设置初始日期-http://api.jqueryui.com/datepicker/#option-defaultDate
所以你可以使用:
$(function() {
var qs_date = location.href.match(/[?&]date=([^&#]+)/);
if (qs_date) {
qs_date = qs_date[1];
//alert(qs_date);
}
$("#datepicker").datepicker({
defaultDate: qs_date,
onSelect: function(date, picker){
var url = "http://wwwdev.cco.purdue.edu/asp/Calendar/matt_test.asp?date=" + date;
window.location = url;
}
});
});
它应该是完美的,因为如果qs_date
是null
(查询字符串中没有匹配项),那么将defaultDate
值设置为null
与省略它(它的默认值)并将日期设置为今天是一样的。因此,只有查询字符串中有匹配项,默认日期才会从今天起更改。
- 收到错误时如何防止在提交()上重定向
- HTML重定向到错误的位置
- 如果错误,如何防止页面重定向?(HTML/JavaScript)
- 成功时 PHP 页面重定向,否则显示错误
- 将 Javascript 语法错误和控制台.log重定向到其他地方
- 如何删除未定义的对象错误并根据位置重定向用户
- 模态中的 Django 形式:动态重定向和处理错误
- 在模态中加载分部视图时发生错误时重定向到错误页面
- 当响应 JSON 对象数据计数为零时,AJAX 成功回调函数重定向到错误回调
- 如何在输入错误的用户名和/或密码时将用户从登录控件重定向到错误页面
- 有关动态倒计时重定向的错误
- 重定向时出现机架 CORS 错误
- 如何用“重定向”来重定向网页;http错误404”;自动切换到默认网页
- 重定向后,如何显示来自原始文件的错误消息
- Spring MVC JSP Jquery调用控制器方法上的按钮点击后重定向错误
- ASP.NET MVC:正在将部分视图中的错误重定向为主视图
- XMLHttpRequest完成错误后重定向
- 重定向时出现页面未找到错误
- OAuth.使用OAuth获取tweet时出现未定义错误.重定向方法的回调
- 如果页面上的所有图像都返回错误重定向