Javascript window.open模板在django中,使用chrome
在阅读了互联网上的所有内容后,我不再确定问题出在哪里,我希望能得到一些帮助。谢谢 我有一个用户正在填写的三种不同的表单,我在其中放置了一个jQueryUI对话框,当表单提交时会出现这个对话框。我正试图让“下一步”按钮将用户从当前页面导航到下一个模板,但无法实现这一点。我在Chrome中也遇到了错误,在我的window.open行上显示“unexpected token.”,我尝试使用变量来设置它,并尝试了各种ajax调用,但似乎没有任何效果 这是我的网址:Javascript window.open模板在django中,使用chrome,javascript,jquery,python,django,django-templates,Javascript,Jquery,Python,Django,Django Templates,在阅读了互联网上的所有内容后,我不再确定问题出在哪里,我希望能得到一些帮助。谢谢 我有一个用户正在填写的三种不同的表单,我在其中放置了一个jQueryUI对话框,当表单提交时会出现这个对话框。我正试图让“下一步”按钮将用户从当前页面导航到下一个模板,但无法实现这一点。我在Chrome中也遇到了错误,在我的window.open行上显示“unexpected token.”,我尝试使用变量来设置它,并尝试了各种ajax调用,但似乎没有任何效果 这是我的网址: url(r'^campers/',ca
url(r'^campers/',campers, name="campers"),
下面是我的javascript:
$("#vehiclebutton").click(function(e){
e.preventDefault();
$('<div></div>').appendTo('#vehicle_message')
.html('<div><h3> Next, tell us about your sleeping arrangements. </h3></div>')
.dialog({
title: "Confirm",
width: 500,
height: 300,
modal: true,
resizable: false,
show: { effect: 'drop', direction: "left" },
hide: {effect:'drop', direction:'left'},
buttons: {
Next: function() {
$.ajax({
window.location.href('http://127.0.0.1:8000/campers')
$(this).dialog("close");
})
}
}
})
})
});
$(“#车辆按钮”)。单击(功能(e){
e、 预防默认值();
$(“”).appendTo(“#车辆信息”)
.html(‘接下来,告诉我们您的睡眠安排’)
.对话({
标题:“确认”,
宽度:500,
身高:300,
莫代尔:是的,
可调整大小:false,
显示:{效果:“下降”,方向:“左”},
隐藏:{效果:'drop',方向:'left'},
按钮:{
下一步:函数(){
$.ajax({
window.location.href('http://127.0.0.1:8000/campers')
$(此).dialog(“关闭”);
})
}
}
})
})
});
我建议更正您的车辆按钮点击处理程序:
$(函数(){
$(“#车辆按钮”)。单击(功能(e){
e、 预防默认值();
var obj=null;
$(“”).appendTo(“#车辆信息”)
.html(‘接下来,告诉我们您的睡眠安排’)
.对话({
标题:“确认”,
宽度:500,
身高:300,
莫代尔:是的,
可调整大小:false,
显示:{效果:“下降”,方向:“左”},
隐藏:{effect:'drop',direction:'left'},
按钮:[{
文本:“下一个”,
单击:函数(){
var数据=”;
obj=$(本);
$.ajax({
网址:'http://127.0.0.1:63342/campers',
数据:数据,
方法:“张贴”,
数据类型:“html”,
}).done(函数(数据、文本状态、jqXHR){
对象对话框(“关闭”);
}).fail(函数(jqXHR,textStatus){
对象对话框(“关闭”);
})
}
}]
});
});
});代码>
点击我
好的,以下是最终有效的方法。我不确定这段代码中是否有一些不必要的部分,但根据上面的答案和互联网上的其他部分,以及Django文档,我将其拼凑起来:
我得到了允许跨来源站点资源共享的Chrome扩展
我把csrf曲奇饼按顺序放进去
我将ajax头添加到ajax调用本身
所有这些都是非常基本的,但我很少使用ajax,也没有与Django结合使用,下面是我的工作代码。如果可以通过编辑来改进,我很想知道
$(function () {
$("#profilebutton").click(function(e){
e.preventDefault();
var obj = null;
$('<div></div>').appendTo('#profile_message')
.html('<div><h3> Next, tell us about how you\'re getting here. </h3></div>')
.dialog({
title: "Confirm",
width: 500,
height: 300,
modal: true,
resizable: false,
show: {effect: 'drop', direction: "left"},
hide: {effect: 'drop', direction: 'left'},
buttons: [{
text: 'Next',
click: function () {
var data = "";
obj = $(this);
$.ajax({
method: "POST",
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
},
data: data,
dataType: 'html',
}).done(function(data, textStatus, jqXHR) {
window.location.href = '/vehicle/';
obj.dialog("close");
}).fail(function(jqXHR, textStatus) {
obj.dialog("close");
})
}
}]
});
});
});
$(函数(){
$(“#profilebutton”)。单击(函数(e){
e、 预防默认值();
var obj=null;
$(“”).appendTo(“#配置文件_消息”)
.html('接下来,告诉我们您是如何来到这里的。'))
.对话({
标题:“确认”,
宽度:500,
身高:300,
莫代尔:是的,
可调整大小:false,
显示:{效果:“下降”,方向:“左”},
隐藏:{effect:'drop',direction:'left'},
按钮:[{
文本:“下一个”,
单击:函数(){
var数据=”;
obj=$(本);
$.ajax({
方法:“张贴”,
发送前:功能(xhr、设置){
如果(!csrfSafeMethod(settings.type)&&!this.crossDomain){
setRequestHeader(“X-CSRFToken”,CSRFToken);
}
},
数据:数据,
数据类型:“html”,
}).done(函数(数据、文本状态、jqXHR){
window.location.href='/vehicle/';
对象对话框(“关闭”);
}).fail(函数(jqXHR,textStatus){
对象对话框(“关闭”);
})
}
}]
});
});
});
$.ajax({window.location.href(')$(this.dialog(“close”);})??是的,正如vadimchin所暗示的,在jQuery ajax调用中根本不需要这样做。你想在那里做什么?首先,{}
使其成为一个对象,需要键和值;您至少需要一个用于加载Ajax的URL,以及一个用于调用成功函数的URL。