keyup大写问题

jac*_*see 2 javascript javascript-events onkeyup

我希望有一个输入在keyup上改为大写.所以我在keyup上附上一个简单的事件.

HTML

<input id="test"/>
Run Code Online (Sandbox Code Playgroud)

Javascript(使用jQuery)

$("#test").keyup(function(){
  this.value = this.value.toUpperCase();
});
Run Code Online (Sandbox Code Playgroud)

但是我发现在Chrome和IE中,当你按下左箭头时,光标会自动移动到最后.我注意到我应该检测输入是否只是字母.我应该使用键码范围或正则表达式进行检测吗?

示例:http://jsbin.com/omope3

Che*_*tan 5

或者你可以使用以下(这可能更快,更优雅):

<input style="text-transform: uppercase" type='text'></input>
Run Code Online (Sandbox Code Playgroud)

但是,它会在表单数据中返回as-typed值,因此请使用以下任一方法将其作为all-caps存储在数据库中:

MySQL的: UPPER(str)

PHP: strtoupper()