2

我试图在用户填写后将文本输入值更改为大写字符串:

$('#University').blur(function(){
    if ( $(this).attr("value") != '') {
        var uni = $(this).val();
        uni.toUpperCase();
        alert(uni);
        $(this).attr("value", uni);
        };
});

<input type="text" name="Universidad" size="45" class="required" id="University">

如果我在字段中写入“leandro”,alert(uni)则会抛出:“leandro”而不是“LEANDRO”。任何的想法?

我无法使用 CSS,因为我必须通过此表单发送大写数据,而 css 仅更改渲染而不更改值

4

4 回答 4

17

改成这样:

uni = uni.toUpperCase();

字符串是不可变的,因此您需要将结果分配给变量,覆盖旧字符串。

于 2012-05-21T19:42:37.433 回答
6

.toUpperCase()函数返回一个新字符串;它不会修改现有字符串。

于 2012-05-21T19:42:44.047 回答
2

你可以用更好的方式重写你的函数。见下文,

$('#University').blur(function(){
    this.value = this.value.toUpperCase();
});
于 2012-05-21T19:47:28.973 回答
1

toUpperCase()是一种方法。它返回一个你需要做某事的值。

您调用了.toUpperCase()on 方法uni,但没有在任何地方分配它。

uni = uni.toUpperCase();

...应该有帮助。

于 2013-01-04T20:57:07.170 回答