1

テキスト ボックスですべての小文字を大文字に変換するのに問題があります。

<body>
    <input type="text" id="input_1" class="allcaps"/>
    <input type="text" id="input_2" class="allcaps"/>
</body>

$(document).ready(function () {

    //trigger ng event

    $('.alcaps').live("keyup", function () {
       var fin =   $('.alcaps').val();
       $('.alcaps').val(fin.toUpperCase());
    });                     
});

最初の入力ボックスは内容を大文字に変換しますが、最初のボックスに入力したテキストは 2 番目の入力ボックスにもコピーされます...

4

3 に答える 3

5

クラスをセレクターとして使用する場合、そのクラスのすべての入力ボックスを選択し、値を最初のものと同じに設定します。thisキーワードを使用して、現在のテキスト ボックスのみをターゲットにします。

$(document).ready(function() {
    $(document).on('keyup', '.alcaps', function() {
        var fin = this.value;
        this.value = fin.toUpperCase();
    });
});​

フィドル

于 2012-08-28T07:46:03.340 に答える
2

現在の入力を参照する which を使用できます。また、非推奨であることthisにも注意してください。代わりに次を使用できます。liveon

$(document).on("keyup", ".alcaps", function () {
     this.value = this.value.toUpperCase()
});
于 2012-08-28T07:47:27.810 に答える
0

thisハンドラー内のユーザー:

$('.alcaps').live("keyup", function () {
     var fin =   $(this).val();
     $(this).val(fin.toUpperCase());
});
于 2012-08-28T07:47:06.867 に答える