Asp.net
處理使用者在 ASP.NET MVC 網站中點擊“Enter”鍵
我正在開發一個具有多個送出按鈕的 ASP.NET MVC 網站。IE
<input type="submit" name="SubmitButton" value="Reset" /> <input type="submit" name="SubmitButton" value="OK" /> <input type="submit" name="SubmitButton" value="Back" />我需要讓使用者通過按“Enter”鍵快速送出表單。HTML 標準似乎指定如果使用者按下“Enter”鍵,將假定第一個送出按鈕。但是,我需要將第二個按鈕(即“確定”)按鈕設為預設按鈕,出於我什至不想談論的原因,更改按鈕順序不是一種選擇。
我四處搜尋,發現這篇關於在 ASP.NET 中使用 Page.Form.DefaultButton 的文章,但這不適用於 ASP.NET MVC。
我還嘗試了以下 javascript 解決方案,雖然它適用於 Chrome,但不適用於 IE6
$('body').keypress(function(e) { if (e.which === 13) { $("input[value='OK']").trigger('click'); } });我可以想到一些非常極端的解決方案,例如遍歷表單中的每個控制項,並將上述功能附加到它們。但是,我認為這不是一個非常巧妙的解決方案,所以我想知道有沒有人有更好的解決方案?
首先,這是錯誤的:
<input type="submit" name="SubmitButton" value="Reset" /> <input type="submit" name="SubmitButton" value="OK" /> <input type="submit" name="SubmitButton" value="Back" />這三個都是送出按鈕。重置是 type=“reset” 的輸入。把它整理好。其次,我已經成功實現了類似的東西,它適用於 IE6。嘗試這個:
function keypressHandler(e) { if(e.which == 13) { e.preventDefault(); //stops default action: submitting form $(this).blur(); $('#SubmitButton').focus().click();//give your submit an ID } } $('#myForm').keypress(keypressHandler);當使用者按下輸入鍵時,focus() 部分使按鈕看起來被按下。相當漂亮。