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
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;
|
|
}
|