我知道已经有很多问题要问这个但是我无法解决这个问题。请看一下:
当"更新"时,从个人资料视图按下按钮我希望用一个可编辑的表单显示用户,并从数据库中选择值。截至目前,没有POST数据。
模板:
<form id="shw-form" action="/update_user_profile/{{r_user.id}}" method="get" enctype="multipart/form-data">
<button type="submit" id="upd-btn" class="btn btn-lg btn-warning" onclick="update_profile_page();">UPDATE</button>
</form>
jquery的:
<script type="text/javascript">
function update_profile_page() {
var form = $("#shw-form");
$("#upd-btn").attr('disable', 'true');
$.ajax({
url: form.action,
type: 'get',
success: function(response){
$("#upd-main").load(response);
}
});
return false;
}
</script>
urls.py
url(r'^update_user_profile/(?P<user_id>\d+)$', 'myapp.views.update_user_profile', name='update_user_profile')
但是当我点击按钮时,is_ajax()的else部分就会被执行。
如果您能找到我做错了或遗失的任何内容,请查看。感谢。
答案 0 :(得分:2)
is_ajax()
检查X-REQUESTED-WITH
标题。通常jQuery
会正确设置它。您可以尝试在$.ajax
中明确设置此标头:
$.ajax({
url: form.action,
type: 'get',
success: function(response){
$("#upd-main").load(response);
},
headers: {
'X-Requested-With': 'XMLHttpRequest'
}
});
如果这不起作用,则表示您的服务器或代理会剥离此标题。
答案 1 :(得分:0)
您没有禁用该按钮的默认操作,因此该表单已由浏览器提交。
由于您已经在HTML onclick中明确地放置了JS函数,您可以这样做:
<button ... onclick="update_profile_page();return false;"
答案 2 :(得分:0)
不要使用按钮的onclick属性,它可能无法捕获所有内容。使用jQuery的submit()事件处理程序(http://api.jquery.com/submit/)代替。如果您在控制台中没有看到任何请求,那么Daniel很可能是正确的:表单以通常的方式提交。 / p>