一、js工具類
/*******************************************************************************
* 表單光標定位
*
* @param formId
* @param focusInputName
*/
function formFocus_Bruce(formId, focusInputName) {
window.setTimeout(function() {
$("#" + formId + " input[name='" + focusInputName + "']").focus();
}, 0);
}
function formFocusTextArea_Bruce(formId, focusInputNameId) {
window.setTimeout(function() {
$("#" + formId + " #" + focusInputName).focus();
}, 0);
}
function formFocusTextArea(formId, focusInputName) {
window.setTimeout(function() {
$("#" + formId + " textarea[name=" + focusInputName + "]").focus();
}, 0);
}
/*******************************************************************************
* 綁定指定表單元素類型的回車事件
*
* @param formId
* 表單
* @param element
* 元素類型 (input/select/radio/...)
* @param subFunction
* 回車後要執行的js函數
* @param eventName
* 鍵盤事件 (keyup/keydown/keypress...)
*/
function bindEnter_Bruce(formId, element, subFunction, eventName) {
$("#" + formId + " " + element).bind(eventName, function(event) {
if (event.keyCode == '13') {
subFunction();
}
});
}
/*******************************************************************************
* 表單回車事件綁定 表單光標定位
*
* @param formId
* @param focusInputName
* @param subFunction
* 回車要執行的函數
*/
function bindFormComm(formId, focusInputName, subFunction) {
bindEnter_Bruce(formId, 'input', subFunction, 'keyup');
bindEnter_Bruce(formId, 'select', subFunction, 'keyup');
formFocus_Bruce(formId, focusInputName);
}
二、測試用例
/**
* 測試用例:
*
* 綁定頁面回車事件,以及初始化頁面時的光標定位
*
* @formId
* 表單ID
* @elementName
* 光標定位在指點表單元素的name屬性的值
* @submitFun
* 表單提交需執行的任務
*
*/
$(function(){
bindFormComm("formId","elementName", submitFun);
})
三、實際使用
/**綁定頁面回車事件,以及初始化頁面時的光標定位**/
$(function(){
<span style="white-space:pre"> </span>bindFormComm("searchForm","data.plateNumber", doSearch4Bus);
});