2014-09-16 3 views
0

다음과 같은 문제가 있습니다. 텍스트 필드의 입력을 대문자로 변경해야하지만 입력이 변경되는 곳에서는 CSS 나 일반적인 방법을 사용할 수 없습니다 대문자로. 입력은 처음부터 대문자로 나타나야합니다.이 작업을 수행하는 방법을 찾고 있지만 도움이 필요합니다. 나는이 일을했지만 그것은 아이디어가 KeyboardEvent입니다 사용 된 자본에 noncapital 입력을 변경했다 작동하지 않습니다CSS를 사용하지 않고 텍스트를 변경하지 않고 입력을 대문자로 변경하십시오.

<s:textfield id="textfield1" /> 

$("#textfield1").keypress(function(event) { 
    var isMinus = (event.keyCode >= 97) && (event.keyCode <= 122); 
    if(isMinus) { 

     var evento = document.createEvent("KeyboardEvent"); 
     evento.initKeyboardEvent("onkeypress", true, true, window, event.keyCode - 32, event.location, "", event.repeat, event.locale); 
     event.currentTarget.dispatchEvent(evento); 

    } 

}); 

모든 팁을? 읽어 주셔서 감사합니다!

+0

텍스트 필드 테 장군 않은 텍스트 상자를, 아니 supongo? – Balder

+0

Si, Struts 2 –

답변

0

이 작업을 시도 할 수 있습니다 :

$("#textfield1").keypress(function(event) { 

    var isMinus = (event.keyCode >= 97) && (event.keyCode <= 122); 
    if (isMinus) { 

     var letra = String.fromCharCode(event.keyCode-32);   

     this.value+= letra; 

     event.preventDefault(); 
     event.stopPropagation(); 
    } 

}); 

예 : http://jsfiddle.net/kx23u3z1/

:

+0

de nada jejeje :) – Balder

0

당신은 또한 id="textfield1"

로 변경 주제에 대한 자세한 내용은 여기 내 대답을 참조해야합니다 Allow text box only for letters using jQuery?

TL; DR을 - 사용자가 뭔가 잘못하지 않는 한 입력을 변경하지 마십시오 또는 커서 위치를 조정하고 사용자를 좌절시킬 것입니다.

관련 문제