将小型大写替换为所有大写文本

时间:2012-08-28 07:44:29

标签: javascript jquery

我无法在文本框中将所有小写转换为大写:

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

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

3 个答案:

答案 0 :(得分:5)

当使用类作为选择器时,您选择具有该类的所有输入框并将值设置为与第一个相同。使用this关键字仅定位当前文本框:

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

FIDDLE

答案 1 :(得分:2)

您可以使用引用当前输入的this,也可以使用live弃用,您可以使用on代替:

$(document).on("keyup", ".alcaps", function () {
     this.value = this.value.toUpperCase()
});

答案 2 :(得分:0)

处理程序中的用户this

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