Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery如何在表单提交中查找按钮值_Jquery_Ajax - Fatal编程技术网

jQuery如何在表单提交中查找按钮值

jQuery如何在表单提交中查找按钮值,jquery,ajax,Jquery,Ajax,我有一个基本的时事通讯注册表,带有一个电子邮件字段和两个按钮(订阅和取消订阅)。 我想将按钮值作为ajax数据的一部分提交,但是.serialize()不包括按钮值,因为它们是特定于事件的 这是我的密码: Javascript: $('#newsletter_form').submit(function() { $.ajax({ type:'POST', url:'/newsletter', data: $(this).serialize(

我有一个基本的时事通讯注册表,带有一个电子邮件字段和两个按钮(订阅和取消订阅)。 我想将按钮值作为ajax数据的一部分提交,但是.serialize()不包括按钮值,因为它们是特定于事件的

这是我的密码: Javascript:

$('#newsletter_form').submit(function() {
    $.ajax({
        type:'POST',
        url:'/newsletter',
        data: $(this).serialize(),
        dataType:'json',
        success: function(data) {
            if(data['status'] == true) {
                alert(data['status']);
            }
            else {
                alert(data['error']);
            }
        }
    });
    return false;
});
HTML:


使用按钮上的单击处理程序,而不是表单上的提交处理程序。将
此.value
添加到发送到服务器的数据中。

为什么不直接使用click handler并创建自己的对象,因为您只有两个字段要发送,这应该不会有问题

var data = {
    'email': $('input[name="email"]').val(),
    'submit': $(this).val()
}

data.serialize();
这个怎么样<代码>
 $('#newsletter_form button').click(function() {
        $.ajax({
            type:'POST',
            url:'/newsletter',
            data: $(this).parent('form').serialize() + '&submit='+ $(this).attr("value"),
            dataType:'json',
            success: function(data) {
                if(data['status'] == true) {
                    alert(data['status']);
                }
                else {
                    alert(data['error']);
                }
            }
        });
        return false;
    });
var data = {
    'email': $('input[name="email"]').val(),
    'submit': $(this).val()
}

data.serialize();