You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

48 lines
2.1 KiB

;
$.fn.enter2tab = function (fn_done) {
this.keydown(function (e) {
// get key pressed (charCode from Mozilla/Firefox and Opera / keyCode in IE)
var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
var tmp = null;
var maxTabIndex = 9999;
// get tabindex from which element keypressed
//var nTabIndex = (parseInt($(this).attr('indexRow'), 10) || 0) + 1;
var objCurrElement = this;
var objCurrElementCollect = $('[indexRow]').not(':disabled');
var nTabIndex = [];
objCurrElementCollect.each(function (idx) {
if (this === objCurrElement) {
nTabIndex = $(objCurrElementCollect[idx + 1])
return false;
}
});
debugger;
var myNode = this.nodeName.toLowerCase();
if (((key === 13 && !e.ctrlKey) || key === 9) && ((myNode == "textarea") || (myNode == "input") || (myNode == "select") || (myNode == "a") || (myNode == "button"))) {
for (var x = 0; x < 3; x++) {
//tmp = $("a[indexRow='" + nTabIndex + "'],textarea[indexRow='" + nTabIndex + "'],select[indexRow='" + nTabIndex + "'],input[indexRow='" + nTabIndex + "'],button[indexRow='" + nTabIndex + "']").get(0);
tmp = nTabIndex;
debugger
if (nTabIndex.length > 0) {
$(tmp).focus();
return false;
//break;
} else {
//如果要循環的話,就解開以下的封印
//var first = $("a[tabIndex='0'],textarea[tabIndex='0'],select[tabIndex='0'],input[tabIndex='0']").get(0);
//$(first).focus();
this.blur(function () {
//alert('cc');
});
if (typeof fn_done === 'function') fn_done(); //當tab或enter到最後一個欄位時的處理方法
return false;
}
}
return false;
} else if (key == 13) {
//return false;
}
})
return this;
}