当用户在jquery中开始输入文本时,如何使TEXTBOX中的文本变为大写字母

4
当用户开始在文本框中输入文本时,我们需要将这些字母转换为大写字母。

4个回答

8

不要使用jQuery解决方案,我倾向于使用CSS使输入框中的文本看起来像大写字母(text-transform: uppercase),无论它们是小写或大写输入。然后在处理数据时,将数据转换为大写字母。例如,在PHP中,您可以使用strtoupper()函数 - 我想大多数其他语言中也有相应的函数,您可能正在使用这些语言处理表单数据!


同意。不要使用jQuery来完成这个任务。因为所有的字符都应该大写,而不仅仅是一些字符,所以使用jQuery是浪费的。 - ryanulit
转念一想,我同意这个观点。 - Ender

2
只需将 text-transform: uppercase 添加到您的样式中,然后在服务器端可以将其转换为大写。
input {
  text-transform: uppercase;
}

2

编辑:请查看chigley的答案。

$(function() {
    $('#myTextBox').keyup(function() {
        $(this).val($(this).val().toUpperCase());
    });
});

演示: http://jsfiddle.net/SMrMQ/ 或者,使用CSS样式和在后端进行实际转换。

这个解决方案的可用性很差。你不能按左箭头返回并更正错误,如果你在字符串中的任何位置点击并输入另一个字符(或按“删除”键),光标会跳回到末尾。 - indiv
是的。正如您所注意到的,我几乎立即想到了更好的方法,并将用户转到下面chigley的答案。 - Ender

2
$(function() {
  $('input[type=text]').bind('keyup', function() {
    var val = $(this).val().toUpperCase()
    $(this).val(val);
  });
});

在这里进行测试:http://jsbin.com/opobu3


这个解决方案的可用性也非常糟糕。如果你想要按左箭头回退并更正一个错误,你是做不到的;而且如果你在字符串中的任何位置点击并输入另一个字符(或按“删除”键),光标会跳回到末尾。 - indiv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接