一個提交按鈕以后,用戶如果按了鍵盤的回車鍵,默認情況下,就會提交這個表單了。這樣對於用戶輸入各個表單項目,用戶體驗很不好,輸入完一個項目,或者用鼠標選擇下一個項目,或者用鍵盤的Tab鍵選中下一個項目。
二、問題要求:
1:如果當前處於焦點(也就是用戶正在輸入的那個文本框)不是最后一個輸入框,那么按回車鍵時,將焦點轉移到下一個輸入框;
2:如果當前處於焦點(也就是用戶正在輸入的那個文本框)是最后一個輸入框,那么按回車鍵時,將請用戶確認后提交表單;
三、基本思路:
1:判斷按鍵是否是回車建, 這個比較好辦,用jQeury中的事件,就可以獲取到當前按的鍵的值了,回車鍵的值是13,比較一下即可。
2:判斷當前處於焦點的輸入框是不是最后一個輸入框。
- $(function() {
- $("form[name='contractForm'] input:text").keypress(function(e) {
- if (e.which == 13) {// 判斷所按是否回車鍵
- var inputs = $("form[name='contractForm']").find(":text"); // 獲取表單中的所有輸入框
- var idx = inputs.index(this); // 獲取當前焦點輸入框所處的位置
- if (idx == inputs.length - 1) {// 判斷是否是最后一個輸入框
- if (confirm("最后一個輸入框已經輸入,是否提交?")) // 用戶確認
- $("form[name='contractForm']").submit(); // 提交表單
- } else {
- inputs[idx + 1].focus(); // 設置焦點
- inputs[idx + 1].select(); // 選中文字
- }
- return false;// 取消默認的提交行為
- }
- });
- });