2013-11-21 234 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

不是一個解決問題的方法,需要在用戶往返時保留表單中的信息。 –