我想把我在文本字段中写的所有内容都写成大写字母。在我写作时,不是在失去焦点之后。
如何使用jQuery执行此操作?
答案 0 :(得分:66)
我会使用CSS。
只需将text-transform: uppercase
添加到样式中,然后在服务器端将其转换为大写。
input {
text-transform: uppercase;
}
答案 1 :(得分:14)
$('input[type=text]').keyup(function() {
$(this).val($(this).val().toUpperCase());
});
答案 2 :(得分:5)
使用
oninput='this.value=this.value.toUpperCase();
此事件仅适用于此类情况,在用户输入(按键)之后但在更新(显示值)之前触发,因此这种类型的文本在转换时不会闪烁,并且值也是正确的(不像仅使用样式来改变显示而不改变实际数据。)
答案 3 :(得分:1)
您可能需要使用这些组合。
使用文本转换样式只会以大写形式呈现类型,尽管值可能是小写的。
一旦字段更改或焦点丢失,javascript只会将当前文本更改为上层
你可以使用gazler的jquery或简单地内联javascript
e.g。的onblur = '的javascript:THIS.VALUE = this.value.toUpperCase();'
这意味着当值更改/控制失去焦点时,文本值将显示为大写且实际上是大写的。
HTH 萨姆
答案 4 :(得分: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 );
})