奇怪的django-template-jquery-javascript恶作剧
weird django-template-jquery-javascript shenanigans!
本文关键字:恶作剧 django-template-jquery-javascript 更新时间:2023-09-26
我有以下内容:
return render_to_response('a.html', {'b': 3}, context_instance=...)
in a.html
:
{{ b }}
3 输出
{% url app.views.something b %}
给我:
/something/3/
,
<script type="text/javascript">
$(document).ready(function() {
alert('{{ b }}');
});
</script>
弹出一个带有3的警告对话框。但是如果你查看源代码,你会得到:
<script type="text/javascript">
$(document).ready(function() {
alert('0');
});
</script>
如果我尝试在jquery中使用{{ b }}
在其他任何地方它只是返回我'0'。
如果我执行以下操作并在弹出窗口到达之前检查源,也会发生相同的情况
<script type="text/javascript">
setTimeout("alert('{{ b }}')",2000);
<script>
弹出窗口显示"3",而源文件显示"0"。
以前有人遇到过这样的事情吗?
编辑:我使用HTTP fox来推断这是一个AJAX问题。Django返回'3'到浏览器。
而我上面提供的示例代码是一个过度简化。我所做的基本上是刷新div (content_ct的父)的代码是在使用jquery ajax命令。
$('#ctSelection').change(function() {
if($('#ctSelection option:selected').val()=='1') {
$.get('/company/ct/1/', function(data) {
$('#content_ct').parent().html(data);
});
}
if($('#ctSelection option:selected').val()=='2') {
$.get('/company/ct/2/', function(data) {
$('#content_ct').parent().html(data);
});
}
});
编辑
我认为这是由于jquery重叠处理程序,总是使用堆栈中的第一个
你的javascript结束标签是不是打错了,应该是:
</script>
代替
<script>
除此之外,我用jQuery 1.5和Django 1.3尝试了你的javascript,它工作得很好。
我还没有找到解决这个问题的方法,但是因为django返回了正确的代码,所以它一定是jquery的问题,我在这里展开了。
编辑我最终将框架切换到dojo,因为我找不到解决这个问题的方法
相关文章:
- 在javascript点击事件中调用django-urls
- Django: AJAX + CSRF POST gives 403
- 我的django模板布尔变量是't在javascript中按预期工作
- django模板没有在AJAX发布后重新加载
- jsi18n-django.catogue没有'不包含任何已翻译的字符串(但是djangojs.mo包含)
- 设计Django中当前导航菜单项的样式
- Django可以'不能在设置中导入ckeditor,但可以在shell中导入
- 如何在不使用ajax的情况下将pair值添加到数组并发送到django中的视图
- Django'支持Javascript文件中的翻译
- Django导航:扩展与innerHTML
- 为什么datetime.strptime在使用Django运行时会抛出错误
- django出现神秘的javascript错误
- 如何从django中的url解析javascript字符串
- Django在使用AJAX时没有接收到新的查询字符串
- django没有访问控制允许删除原始标头
- AJAX在Django的外部JS文件中发布
- 从Django中同一页面上的多个按钮启动AJAX请求
- Django无法通过urls.py配置找到djangular/app.js文件.如何进行故障排除
- 在django表单集中添加/删除表单的Javascript
- 奇怪的django-template-jquery-javascript恶作剧