这些POST命令有什么区别?

时间:2011-09-19 13:38:46

标签: javascript jquery

这些有什么区别,我怎么知道何时使用哪个?

$.post($(this).attr('action'), $(this).serialize(), function(response) {
    // do something here on success
}, 'json');

$.post($(this).prop('action'), $(this).serialize(), function(response) {
    // do something here on success
}, 'json');

$.post($(this).closest("form").prop('action'), $(this).serialize(), function(response) {
    // do something here on success
}, 'json');

2 个答案:

答案 0 :(得分:2)

在这种情况下,第一个和第二个是相同的。必须从表单事件处理程序调用这些函数。 <{1}}也可以使用$(this).prop/attr()$(this)[0].action,而不是this.action

第三种方法查找最近的表单元素,并检索表单的action属性。该方法在非形式上下文中是有用的,例如,来自button元素。

答案 1 :(得分:1)

第一个和第二个适用于与<form>元素关联的“submit”事件处理程序。第二种可能更好,但在实际使用中它们几乎相同。

第三个对<button><form>内的“点击”处理程序或某些类似情况很有用。