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());
    });                     
});

第一个输入框将其内容转换为大写,但我在第一个框中输入的文本也被复制到第二个输入...

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

您可以使用thiswhich 指代您当前的输入,还请注意live不推荐使用,您可以on改用:

$(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 回答