这些有什么区别,我怎么知道何时使用哪个?
$.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');
答案 0 :(得分:2)
在这种情况下,第一个和第二个是相同的。必须从表单事件处理程序调用这些函数。 <{1}}也可以使用$(this).prop/attr()
和$(this)[0].action
,而不是this.action
。
第三种方法查找最近的表单元素,并检索表单的action
属性。该方法在非形式上下文中是有用的,例如,来自button
元素。
答案 1 :(得分:1)
第一个和第二个适用于与<form>
元素关联的“submit”事件处理程序。第二种可能更好,但在实际使用中它们几乎相同。
第三个对<button>
内<form>
内的“点击”处理程序或某些类似情况很有用。