Ответ 1
Я бы использовал CSS для этого.
Просто добавьте text-transform: uppercase
к вашему стилю, а затем на стороне сервера вы можете преобразовать его в верхний регистр.
input {
text-transform: uppercase;
}
Я хочу, чтобы все, что я пишу в текстовом поле, было заглавными буквами. Когда я пишу, не теряю фокус.
Как это сделать с помощью jQuery?
Я бы использовал CSS для этого.
Просто добавьте text-transform: uppercase
к вашему стилю, а затем на стороне сервера вы можете преобразовать его в верхний регистр.
input {
text-transform: uppercase;
}
$('input[type=text]').keyup(function() {
$(this).val($(this).val().toUpperCase());
});
Используйте oninput='this.value=this.value.toUpperCase();
Это событие предназначено только для таких случаев, запускается после ввода пользователем (нажатие клавиши), но до обновления (отображения значения), поэтому при этом текст не будет мерцать при преобразовании, а значение также является правильным (не так, как использовать только стиль для изменения отображение без изменения реальных данных).
Возможно, вам придется использовать комбинацию из них.
используя стиль текстового преобразования, отображает только тип в верхнем регистре, хотя значение может быть в нижнем регистре.
javascript только изменит текущий текст на верхний, если поле изменено или фокус потерян
вы можете использовать jazery gazler или просто встроенный javascript
например. ONBLUR = 'JavaScript: this.value = this.value.toUpperCase();'
Это означает, что текстовое значение будет отображаться в верхнем регистре и фактически быть верхним, когда значение изменяется/управление теряет фокус.
НТН Сэм
Чтобы использовать ответ @Gazler, расширенное решение, которое лучше обрабатывает ключи-модификаторы (при условии, что у вас есть местозаполнитель смешанного футляра и не может установить text-transform: uppercase;
):
$('.search-input input[type=text]').keyup(function() {
var v = $(this).val();
var u = v.toUpperCase();
if( v != u ) $(this).val( u );
})