본문 바로가기
개발언어/C#.NET

Javascrpt EnterKey 대신 TabKey 로 변환 (possible to switching enter key with tab key?)

by 엔돌슨 2009. 8. 11.


웹폼을 작성하다보면 일리리 컨트롤의 다음 포커스(Next Control Focus)를 지정하는 데
힘들다.
탭이 너무 많다면 일리리 keydown event를 지정하기 힘들지 않는가?
우린 프로그래머다 쉽게하자

possible to switching enter key with tab key?





여러 방법중 간단히 다음 컨트롤로 EnterKey(13)키를 누를때 TabKey(9)로 변환하는
Javascript를 이용하여 간단히 해결할 수 있다.


<script language=JavaScript>
<!--
function documentOnKeyDown()
{
 var charCode = window.event.keyCode;

 if ( charCode == 13 )
 {
  // Change it to a tab
  window.event.keyCode = 9;
 }
}
document.onkeydown = documentOnKeyDown;
// -->
</script>


관련글은 http://forums.asp.net/p/969222/1217856.aspx 의 토론을 참고하였다.






그외 관련 여러가지 방법이 있다.

http://yacoding.blogspot.com/2007/09/javascript-send-tab-key-on-enter.html

  1. function getIndex(input)  
  2.   {  
  3.     var index = -1, i = 0, found = false;  
  4.     while (i < input.form.length && index == -1)  
  5.       if (input.form[i] == input)index = i;  
  6.       else i++;  
  7.     return index;  
  8.   }  
  9.   
  10. function SendTab(objForm, , strField, evtKeyPress)  
  11. {  
  12.   var aKey = evtKeyPress.keyCode ?  
  13.     evtKeyPress.keyCode :evtKeyPress.which ?  
  14.       evtKeyPress.which : evtKeyPress.charCode;  
  15.   
  16.   if (aKey == 13)  
  17.   {  
  18.     objForm[(getIndex(objForm[strField])+1) % objForm.length].focus();  
  19.   } 

  1. onkeypress="return SendTab(document.forms['f'], 'yourfieldname', event);" 



또...

http://www.dotnetspider.com/resources/22529-Javascript-Enter-key-TabKey.aspx

< script language="javascript" type="text/javascript" >
function enterToTab(formRef, focusAny) /*2843295374657068656E204368616C6D657273*/
{
for(var i=0, e=formRef.elements, len=e.length, hasNext=true; i < len && hasNext; i++)
if( e[i].type && /^text|password|file/.test( e[i].type ) )
{
for(var j=i+1; j < len && (!e[j].type || /submit|reset/.test(e[j].type)||( focusAny ? /hidden/.test(e[j].type): !/^text|password|file/.test(e[j].type)) ); j++)
;
hasNext = j!=len;

e[i].onkeypress=(function(index, notLast)
{
return function()
{
var ta=false, k=(arguments[0]?arguments[0].which:window.event.keyCode )!=13;

if(!k && !(ta=(this.type=='textarea'&&this.value.length &gt0)) && notLast)
this.form.elements[index].focus();

return k||ta;
}
})(j, hasNext);
}
}


< /script >




< form id="form1" runat="server" onkeydown="javascript:enterToTab(form1,TextBox1)" >





댓글0