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

Javascript 如何从带有2个按钮的表单中单击按钮发送Ajax请求?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我想从一个有2个按钮的表单向另一个页面发送请求: 按钮1 按钮2 假设处理程序之间唯一的逻辑区别是单击的按钮的值,您可以使用this关键字引用引发事件的元素,并从中获取val()。试试这个: $("button").click(function(e) { e.preventDefault(); $.ajax({ type: "POST", url: "/pages/test/", data: { id:

我想从一个有2个按钮的表单向另一个页面发送请求:


按钮1
按钮2

假设处理程序之间唯一的逻辑区别是单击的按钮的值,您可以使用
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');
        }
    });
});
$(“按钮”)。单击(功能(e){
e、 预防默认值();
$.ajax({
类型:“POST”,
url:“/pages/test/”,
数据:{
id:$(this).val(),//<注意此处使用“this”
访问令牌:$(“#访问令牌”).val()
},
成功:功能(结果){
警报(“正常”);
},
错误:函数(结果){
警报(“错误”);
}
});
});
  • 创建为单独的函数,用于发送ajax请求
  • 保留第二个参数作为URL,因为将来您希望将数据发送到不同的URL
  • 如果两个功能之间的唯一区别是被触发按钮的值,则使用

    $("#button_1, #button_2").on("click", function(e) {
        e.preventDefault();
        $.ajax({type: "POST",
            url: "/pages/test/",
            data: { id: $(this).val(), access_token: $("#access_token").val() },
            success:function(result) {
              alert('ok');
            },
            error:function(result) {
              alert('error');
            }
        });
    });
    

    是的,谢谢,我是Stackoverflow的新手-目前正在尝试解决问题!:)这起作用了。但是,我试图从返回的json数据中选择
    名称
    ,结果未定义。我将其映射为
    alert(result.name)
    答案完全取决于JSON的结构。我建议开始一个新的问题问伊特汉克斯,让他试一试!:)
    $("#button_1, #button_2").on("click", function(e) {
        e.preventDefault();
        $.ajax({type: "POST",
            url: "/pages/test/",
            data: { id: $(this).val(), access_token: $("#access_token").val() },
            success:function(result) {
              alert('ok');
            },
            error:function(result) {
              alert('error');
            }
        });
    });