我无法在文本框中将所有小写转换为大写:
<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());
});
});
第一个输入框将其内容转换为大写,但我放在第一个框中的文本也被复制到第二个输入...
答案 0 :(得分:5)
当使用类作为选择器时,您选择具有该类的所有输入框并将值设置为与第一个相同。使用this
关键字仅定位当前文本框:
$(document).ready(function() {
$(document).on('keyup', '.alcaps', function() {
var fin = this.value;
this.value = fin.toUpperCase();
});
});
答案 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());
});