我有链接的寻呼机,我想使用post而不是默认重定向,因为我需要从表单传递一些其他值。我设置jquery post onclick就像那样:
<script type="text/javascript">
$(document).ready(function () {
$("#mytable tfoot a").click(function() {
$.post($(this).attr("href"), $("form").serialize());
//return false; if i set that the page does not getting updated
});
});
但它并没有完全覆盖href行为,因为首先发生的是事后行动,这样做很好,但随后形式再次提交。
我的javascript并没有完全覆盖href行为。
可能有人对此有任何想法吗?
答案 0 :(得分:1)
AJAX化链接的正确方法如下:
$(function() {
$('#mytable tfoot a').click(function() {
$.post(this.href, $('form').serialize(), function(result) {
alert('success');
});
return false;
});
});
要验证的事情很少:
.click
内附加$(document).ready
处理程序,如我的代码段所示。false
处理程序返回.click
以取消默认操作。答案 1 :(得分:1)
你觉得它不起作用的原因是因为你没有做你认为自己在做的事情。
$.post
方法不发布表单,它在后台进行AJAX调用。您可以在响应到达时调用的调用中提供回调方法,但由于您没有回调方法,因此您只需忽略响应,因此似乎没有任何反应。
如果您要发布表单,则不应使用$.post
方法,而应使用submit
方法发送表单:
$(document).ready(function () {
$("#mytable tfoot a").click(function(e) {
e.preventDefault(); // keeps the link from being activated
var form = $("form");
form.attr('action', $(this).attr("href"));
form.attr('method', 'post');
form.submit();
});
});
答案 2 :(得分:0)
return false;
对于阻止$.post()
来电后跟踪链接至关重要。
答案 3 :(得分:0)
如果您想发布到另一个网址,并让网页作为帖子的一部分转到该网址,那么唯一的解决方案是将您的数据放在表单内的输入元素中,该表单的操作就是您希望的页面发布到。
您可以执行ajax帖子,就像您正在执行的那样,但不会将用户重定向到包含帖子数据的该页面。你可能会比现在更加困难。