从jQuery中识别表单中的提交按钮

时间:2013-09-30 08:28:53

标签: javascript jquery forms

当我从不同的按钮提交表单时,我想做一个不同的功能。我的表格如下。

<form action="status_submit" method="get" accept-charset="utf-8">
    <button type="submit" name="approve">Approve</button>
    <button type="submit" name="reject">Reject</button>
    <button type="submit" name="cancel">Cancel</button>
</form>

我尝试了以下代码。但是没有用。

<script type="text/javascript">
    $(document).ready(function() {
        $('form').submit(function(event) {
            var val = $("button[type=submit][clicked=true]").attr('name');

            alert(val);

            if (val == 'approve') {
                alert('approve');
            } else if (val == 'reject') {
                alert('reject');
            } else if (val == 'cancel') {
                alert('cancel');
            }

            return false;
        });        
    });
</script>

始终为未定义的val。我该怎么做?

2 个答案:

答案 0 :(得分:0)

你不能那样跟踪......解决方案可能是使用按钮的点击处理程序

转储解决方案可以

$(document).ready(function() {

    $('button[name="approve"]').click(function(){
        //do stuff
        $(this).addClass('clicked');
    })
    $('button[name="reject"]').click(function(){
        //do stuff
        $(this).addClass('clicked');
    })
    $('button[name="cancel"]').click(function(){
        //do stuff
        $(this).addClass('clicked');
    })

    $('form').submit(function(event) {
        var val = $("button.clicked[type=submit]").attr('name').removeClass('clicked');

        alert(val);

        if (val == 'approve') {
            alert('approve');
        } else if (val == 'reject') {
            alert('reject');
        } else if (val == 'cancel') {
            alert('cancel');
        }

        return false;
    });        
});

答案 1 :(得分:0)

使用$(this)引用点击的按钮。

<script type="text/javascript">
$(document).ready(function() {
    $('form button[type="submit"]').click(function(event) {
        var val = $(this).attr('name');

        alert(val);

        if (val == 'approve') {
            alert('approve');
        } else if (val == 'reject') {
            alert('reject');
        } else if (val == 'cancel') {
            alert('cancel');
        }

        // Submit form
        $('form').submit();

        return false;
    });        
});
</script>