如何从具有2个按钮的表单中单击按钮发送Ajax请求?

我想从具有2个按钮的表单中将请求从一页发送到另一页:

<form method="post">

<button id="button_1" value="val_1" name="but1">button 1</button>

<button id="button_2" value="val_2" name="but2">button 2</button>

<input id="access_token" type="hidden" name="access_token" value="<?php echo $_SESSION['access_token']; ?>" />

</form>

$(document).ready(function() {

$("#button_1").click(function(e) {

e.preventDefault();

$.ajax({

type: "POST",

url: "/pages/test/",

data: {

id: $("#button_1").val(),

access_token: $("#access_token").val()

},

success: function(result) {

alert('ok');

},

error: function(result) {

alert('error');

}

});

});

$("#button_2").click(function(e) {

e.preventDefault();

$.ajax({

type: "POST",

url: "/pages/test/",

data: {

id: $("#button_2").val(),

access_token: $("#access_token").val()

},

success: function(result) {

alert('ok');

},

error: function(result) {

alert('error');

}

});

});

});

如何改善此代码,甚至可以将其合并为一个函数?

回答:

鉴于处理程序之间唯一的逻辑差异是单击的按钮的值,您可以使用this关键字引用引发事件的元素并从中获取事件val()。试试这个:

$("button").click(function(e) {

e.preventDefault();

$.ajax({

type: "POST",

url: "/pages/test/",

data: {

id: $(this).val(), // < note use of 'this' here

access_token: $("#access_token").val()

},

success: function(result) {

alert('ok');

},

error: function(result) {

alert('error');

}

});

});

以上是 如何从具有2个按钮的表单中单击按钮发送Ajax请求? 的全部内容, 来源链接: utcz.com/qa/407086.html

回到顶部