2

我的表格有一个不寻常的问题(这里是精简版):

<script>
    (function($){
        $("form").submit(function(){ 
            alert('Checkout time!'); 
        });
        $("button[name='process_order']").click(function(){ 
            alert('Button Checkout time!'); 
        });
        $("button[name='back']").click(function(){ 
            alert('Back Button'); 
        });
    })(jQuery);
</script>

<form>
    <input type="text" name="moo1" tabindex="1" />
    <input type="text" name="moo2" tabindex="2" />
    <button name="back" tabindex="4">Back</button>
    <button name="process_order" tabindex="3">Process Order</button>
</form>

这些按钮工作正常,但是,如果我在其中一个具有焦点的文本框时按 Enter 键,则会触发“后退按钮”动作......即使表单的提交处理程序设置为“结帐”......

4

2 回答 2

2

您可能可以将 process_order 更改为:

<input type="submit" name="process_order" value="Process Order" tabindex="3" />

并更改为:

<form id="myForm">

然后,将 .submit() 处理程序绑定到它

$('#myForm').submit(function()
{
    alert('Button checkout time!');
    return false; //we return false so that it doesn't refresh the page
});
于 2012-04-13T02:18:20.120 回答
0

您的表单有两个提交按钮,表单将通过激活第一个提交按钮使用回车键提交。改变

<button name="back" tabindex="4">Back</button>

<button type="button" name="back" tabindex="4">Back</button>

避免浏览器将第一个按钮解释为提交按钮

于 2012-04-13T02:21:02.227 回答