2013-11-21 185 views
2

我有两个提交按钮,一个后退提交按钮和一个下一个提交按钮,当用户在文本输入并按下回车键时,它会将它们倒退...我认为这是因为进入唤起返回提交按钮而不是下一个提交按钮。有两个提交按钮

<form action="" method="post"> 

    <input type="submit" name="GOTO1" value="back" /> 

    <input type="text" name="value1" /> 

    <input type="submit" name="GOTO3" value="next" /> 

</form> 

所以,当你的,而不是文本字段,然后按回车键执行它的第一个提交按钮,我怎样才能改变这种状况?

+0

是所有的代码?如果是的话,我看不到他们将如何被收回 –

+0

当输入被按下时,具有单个输入的表单被自动提交。在这种情况下,第一个按钮执行操作。 – melancia

+0

为每次提交创建两个单独的表单...或者您可以使用jQuery来防止默认提交,运行IF语句(基于提交值),然后让jQuery根据单击的按钮执行提交。 –

回答

1

去jQuery的路线......(未经测试)。

// Prevent default on form on page load 
// or on "enter" 
$('form').disable(); 

// OR.... 

// Disable the ENTER key altogether on the form inputs 
$('form').find('.input').keypress(function(e){ 
    if (e.which == 13) // Enter key is keycode 13 
    { 
     return false; 
    }  
}); 

$('input[type="submit"]').on('click', function() { 
    var btn = $(this).val(); 

    if(btn == 'back') 
    { 
     // do this to go back, code here 
    } 
    else 
    { 
     // do this to go to next, code here 
    } 
    return false; 
}); 
+1

我觉得禁用它是最好的选择,因为没有真正的解决方案。谢谢! –

+0

干杯 - 快乐的编码! –

0

很简单的解决方法

<script> 
    function myFunction() 
{ 
} 
    function myFunction2() 
{ 
} 
</script> 
</head> 
<body> 
<form action="" method="post"> 

    <input type="submit" name="GOTO1" value="back" onclick="myFunction2()"/> 

    <input type="text" name="value1" /> 

    <input type="submit" name="GOTO3" value="next" onclick="myFunction()" /> 

</form> 

不整洁,但它的工作原理上的onclick号码参考。

希望这有助于...

+0

这不会造成当用户按下输入时,在窗体中的问题... –

+0

检查我的答案,男人... –

+0

是的,jquery它总是最好的,我试图留在HTML中的一招:)不错的手男人 –

0

使用

<input type="button" ... > 

你不应该有更多的形式,每超过一提交,因为ENTER应该触发它。

要知道更多关于它,你可以看看这个:https://stackoverflow.com/a/469084/955143

+0

不是一个解决问题的方法,需要在用户往返时保留表单中的信息。 –