1

我正在使用以下代码将输入到文本框中的第一个字母大写。起初这工作正常,但如果整个框被删除,再次输入后它不会再次大写。

这可以解决吗?

$(function () {
    $('.userBox').one('DOMAttrModified textInput input keypress paste focus', 
          function (e) {
             $(this).val($(this).val().slice(0, 1).toUpperCase() + 
                    $(this).val().slice(1));
          });
});

jsfiddle:http: //jsfiddle.net/VBXbz/

更新 jsfiddle:http: //jsfiddle.net/VBXbz/8/

4

2 回答 2

5

你想要,不是一个

$(function () {
    $('.userBox').on('DOMAttrModified textInput input keypress paste focus', function (e) {
        $(this).val($(this).val().slice(0, 1).toUpperCase() + $(this).val().slice(1));
    });
});

one适用于您希望最多执行一次的处理程序

于 2013-02-14T18:52:39.953 回答
2

.one使事件在页面使用中只发生一次.on

$('.userBox').on('DOMAttrModified ....

更新:

你可以尝试这样的事情:

$(function () {
  $('.userBox').on('DOMAttrModified  keypress',function (e) {
      $(this).val($(this).val().slice(0, 1).toUpperCase() + $(this).val().slice(1));
  }).on('focus',function () {
      $(this).val('');
  });
});
于 2013-02-14T18:53:33.537 回答