【发布时间】:2011-07-25 06:37:41
【问题描述】:
大家! 我正在编写一个简单的 django 应用程序。其中一个页面上有脚本,该脚本适用于按钮单击并使用 ajax 发布。 问题是:post 方法不会导致服务器代码的执行,只是每次出错时执行函数。
脚本:
<script type="text/javascript">
(function($) {
$(document).ready(function(){
{% for obj in cl.result_list %}
$('#done_{{ obj.pk }}').click(function() {
if ($(this).html().indexOf("icon-yes") != -1) {
$action = "no";
}
else {
$action = "yes";
}
$.ajax({
type: "POST",
url: "/on_hold_done/done/" + $action + "/{{ obj.pk }}/",
success: function(response) {
alert("success")
},
error: function(response) {
alert("error")
}
})
});
{% endfor %}
});})(django.jQuery);
</script>
在 urls.py 中:
(r"^on_hold_done/(on_hold|done)/(yes|no)/(\d*)/$", "todo.views.on_hold_done")
在views.py中:
@staff_member_required
def on_hold_done(request, mode, action, pk):
"""simple code here"""
return HttpResponse('')
【问题讨论】:
-
使用 Firebug 查看您从服务器获得的响应。
-
$action 变量看起来可能会导致问题,因为 $ 在 jQuery 中具有特殊功能。
-
@Bjorn:命名变量
$action不是问题。 JavaScript 变量可以包含$字符。$变量只是对jQuery的引用。 -
@blazkovicz:看起来问题已解决,下面的答案(或其讨论)提供了部分或全部解决方案 - 您能否接受或提供您认为更好地回答问题的新答案?