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.

47 lines
2.1 KiB

  1. ;
  2. $.fn.enter2tab = function (fn_done) {
  3. this.keydown(function (e) {
  4. // get key pressed (charCode from Mozilla/Firefox and Opera / keyCode in IE)
  5. var key = e.charCode ? e.charCode : e.keyCode ? e.keyCode : 0;
  6. var tmp = null;
  7. var maxTabIndex = 9999;
  8. // get tabindex from which element keypressed
  9. //var nTabIndex = (parseInt($(this).attr('indexRow'), 10) || 0) + 1;
  10. var objCurrElement = this;
  11. var objCurrElementCollect = $('[indexRow]').not(':disabled');
  12. var nTabIndex = [];
  13. objCurrElementCollect.each(function (idx) {
  14. if (this === objCurrElement) {
  15. nTabIndex = $(objCurrElementCollect[idx + 1])
  16. return false;
  17. }
  18. });
  19. debugger;
  20. var myNode = this.nodeName.toLowerCase();
  21. if (((key === 13 && !e.ctrlKey) || key === 9) && ((myNode == "textarea") || (myNode == "input") || (myNode == "select") || (myNode == "a") || (myNode == "button"))) {
  22. for (var x = 0; x < 3; x++) {
  23. //tmp = $("a[indexRow='" + nTabIndex + "'],textarea[indexRow='" + nTabIndex + "'],select[indexRow='" + nTabIndex + "'],input[indexRow='" + nTabIndex + "'],button[indexRow='" + nTabIndex + "']").get(0);
  24. tmp = nTabIndex;
  25. debugger
  26. if (nTabIndex.length > 0) {
  27. $(tmp).focus();
  28. return false;
  29. //break;
  30. } else {
  31. //如果要循環的話,就解開以下的封印
  32. //var first = $("a[tabIndex='0'],textarea[tabIndex='0'],select[tabIndex='0'],input[tabIndex='0']").get(0);
  33. //$(first).focus();
  34. this.blur(function () {
  35. //alert('cc');
  36. });
  37. if (typeof fn_done === 'function') fn_done(); //當tab或enter到最後一個欄位時的處理方法
  38. return false;
  39. }
  40. }
  41. return false;
  42. } else if (key == 13) {
  43. //return false;
  44. }
  45. })
  46. return this;
  47. }