0

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

<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。我该怎么做?

4

2 回答 2

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;
    });        
});
于 2013-09-30T08:31:18.230 回答
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>
于 2013-09-30T08:35:54.363 回答