我有一个看起来像这样的形式:提交有两个jQuery的Ajax表单提交按钮
<form action="/vote/" method="post" class="vote_form">
<input type="hidden" name="question_id" value="10" />
<input type="image" src="vote_down.png" class="vote_down" name="submit" value="down" />
<input type="image" src="vote_up.png" class="vote_up" name="submit" value="up" />
</form>
当我绑定到表单的提交($("vote_form").submit()
),我似乎没有能够访问该图像用户点击。所以我试图绑定点击图像本身($(".vote_down, .vote_up").click()
),它总是提交表单,不管我是否尝试
- return false;
- event.stopPropogation();或
- event.preventDefault();
因为所有这些都是窗体事件。
我应该附上我的$。员额()到form.submit()事件,如果是这样,我怎么告诉用户点击该输入,或
我应该附上我$ .post()到图片点击,如果是的话,我怎样才能阻止表单提交。
这里是我的jQuery代码看起来像现在:
$(".vote_up, .vote_down").click(function (event) {
$form = $(this).parent("form");
$.post($form.attr("action"), $form.find("input").serialize() + {
'submit': $(this).attr("value")
}, function (data) {
// do something with data
});
return false; // <--- This doesn't prevent form from submitting; what does!?
});
非常感谢。稍微缩短我现有的尝试! – mhenrixon 2011-08-08 12:20:51
为什么不使用'$ this.attr(“name”)''来避免硬编码'“&submit =”'? – Bengt 2012-10-24 19:43:43
@bngtlrs我猜,因为这是一个函数调用开销,这是不必要的。 – PaulSkinner 2013-02-26 13:43:50