Проблема с использованием заглавной буквы первой буквы текстового поля

Я использую следующий код, чтобы использовать заглавные буквы в текстовом поле. Проблема в том, что когда вы переходите к другому текстовому полю, затем вкладываете назад и вводите что-то, оно не стирает то, что есть.. оно добавляет то, что вы вводите.

Это можно исправить?

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

Демо: http://jsfiddle.net/VBXbz/8/

2 ответа

<script type="text/javascript" language="javascript">
    function Capitalize(id) {
        var txt = document.getElementById(id);
        txt.value = txt.value.replace(/\w\S*/g, function (txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });
    }
</script>

Сарат @f1

Я бы просто привязал фокус к другой функции, которая очистит содержимое поля ввода. Вот так:

$('.userBox').on('focus', function (e) {
    $(this).val("");
}); 

Тогда у вас, по сути, будет http://jsfiddle.net/KWRef/.

Разве я пропустил что-то, что ты хотел сделать?

Другие вопросы по тегам