我在键入时使用以下代码将其转换为大写。
$(".input_capital").live('keypress', function(e)
{
var defaultStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var checkstr = $(this).val();
var str1 = '';
for (i = 0; i < checkstr.length; i++)
{
var ch = checkstr.charCodeAt(i);
if (ch>=97 && ch<=122){
str1 += defaultStr.charAt(ch-97);
}else{
str1 += checkstr.charAt(i);
}
}
$(this).focus();
$(this).val(str1);
});
和下面的代码
$(".input_capital").live('keypress', function(e)
{
$(this).val($(this).val().toUpperCase());
});
以上所有这些代码都可以正常工作。但是对于用户来说,可以在一段时间内查看小写字母。之后,仅将其转换为大写。
我尝试在CSS中使用“
text-transform: uppercase
”。但这不适用于Android Os的Samsung选项卡。请任何人帮助我通过脚本来实现。 最佳答案
你可以试试:
$(".input_capital").on('keydown', function(evt) {
$(this).val(function (_, val) {
return val + String.fromCharCode(evt.which).toUpperCase();
});
return false;
});
http://jsfiddle.net/5gLyX/
它有一些缺陷,但是我认为这个想法很明确,并且可以建立。
更好的版本,但请注意IE input事件。
$('.input_capital').on('input', function(evt) {
$(this).val(function(_, val) {
return val.toUpperCase();
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<textarea class='input_capital' rows='8'></textarea>