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

1つではなく、オンにしたい:

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

one最大1回実行したいハンドラー用です

于 2013-02-14T18:52:39.953 に答える
2

.one.on代わりに、ページ内でイベントが 1 回だけ発生するようにします。

$('.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 に答える