将文本框中的第一个字母大写

时间:2013-02-14 18:50:22

标签: jquery textbox capitalize

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

可以修复吗?

$(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/

2 个答案:

答案 0 :(得分:5)

您需要on,而不是one

$(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 :(得分: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('');
  });
});