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()でメソッドを呼び出しましたuniが、どこにも割り当てていません。

uni = uni.toUpperCase();

...役立つはずです。

于 2013-01-04T20:57:07.170 に答える