【问题标题】:Capitalize first letter in textbox将文本框中的第一个字母大写
【发布时间】:2013-01-30 16:11:21
【问题描述】:

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

这可以解决吗?

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

【问题讨论】:

  • 您可以使用 css (text-transform) Demo。但即使在句号之后它也会大写。

标签: jquery textbox capitalize


【解决方案1】:

你想要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 用于您希望最多执行一次的处理程序

【讨论】:

    【解决方案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('');
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 2018-07-08
      • 2013-04-21
      • 2014-01-02
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      相关资源
      最近更新 更多