21

我想让我在文本字段中写的所有内容都是大写字母。在我写的时候,不是在失去焦点之后。

我如何使用 jQuery 做到这一点?

4

5 回答 5

66

我会为此使用 CSS。

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

input {
  text-transform: uppercase;
}
于 2010-10-04T19:39:21.850 回答
14
$('input[type=text]').keyup(function() {
    $(this).val($(this).val().toUpperCase());
});
于 2010-10-04T19:39:12.800 回答
5

使用
oninput='this.value=this.value.toUpperCase();
此事件仅适用于这种情况,在用户输入(按键)之后但在更新(显示值)之前触发,因此使用此键入的文本在转换时不会闪烁,并且值也是正确的(不像只使用样式来更改显示而不更改实际数据)。

于 2014-01-16T17:02:09.253 回答
1

您可能需要使用这些组合。

使用 text-transform 样式只会以大写形式呈现类型,尽管值很可能是小写形式。

javascript 只会在字段更改或焦点丢失时将当前文本更改为上部

你可以使用 gazler 的 jquery 或简单的内联 javascript

例如 onblur='javascript:this.value=this.value.toUpperCase();'

这意味着文本值将显示为大写,并且当值更改/控制失去焦点时实际上是大写的。

HTH 山姆

于 2010-10-04T20:18:02.040 回答
0

为了建立@Gazler 的答案,一个增强的解决方案可以更好地处理修饰键(假设您有一个混合大小写的占位符并且无法设置text-transform: uppercase;):

$('.search-input input[type=text]').keyup(function() {
    var v = $(this).val();
    var u = v.toUpperCase();
    if( v != u ) $(this).val( u );
})
于 2017-02-26T16:06:04.573 回答