【发布时间】:2010-10-16 11:04:36
【问题描述】:
我正在尝试使用 POST 方法提交一些数据并重定向页面。但是每当我单击提交按钮时,jquery 都不会在新页面上正确加载。 我能够将我的问题减少到以下代码。例如,如果我按下提交,则会加载一个新页面。但是提交按钮没有给出任何响应,并且没有出现警告框。
<html lang="en">
<head>
<script type="text/javascript" src="{{ MEDIA_URL }}site/jquery-1.4.2.js"></script>
<script type="text/javascript">
$( document ).ready( function() {
$('#submit').click( function() {
alert("Submit button pressed" );
$.post("/questions/submit/",
{qid:1, ans:"dummy" },
function(data) {
$('html').html(data);
});
});
});
</script>
</head>
<body>
<a href="/accounts/logout">Logout</a>
{{ section.qid }}
<button id="submit">Submit</button>
</body>
</html>
显然,每当通过 jquery 将新数据加载到页面中时,jquery 脚本和函数都不会执行。所以我必须在页面上进行“刷新”,一切正常。但是,在 post 函数中,如果我将 'html' 更改为 'body',提交就可以了。
$('body').html(data);
但不同的页面可能包含不同的脚本文件。所以我不赞成这样做。实现这一点的理想方法应该是什么,以便正确加载 jquery 函数?
PS:在检查“页面源”时,我注意到旧的 section.qid 存在于页面源中。但是,浏览器会呈现新的(并且显然是正确的)section.qid。我难住了。
【问题讨论】: