Я хочу, чтобы все, что я пишу в текстовом поле, было заглавными буквами. Как я пишу, не потеряв фокус.
Как это сделать с помощью jQuery?
Я хочу, чтобы все, что я пишу в текстовом поле, было заглавными буквами. Как я пишу, не потеряв фокус.
Как это сделать с помощью jQuery?
Я бы использовал CSS для этого.
Просто добавьте text-transform: uppercase
к своему стилю, а затем на стороне сервера вы сможете преобразовать его в верхний регистр.
input {
text-transform: uppercase;
}
Useoninput='this.value=this.value.toUpperCase();
Это событие как раз для таких случаев, срабатывает после ввода пользователем (нажатия клавиши), но перед обновлением (отображением значения), поэтому с этим набранным текстом не будет мерцать при конвертации, и значение также правильное (не похоже на использование только стиля для изменения отображения без изменения реальных данных).
Возможно, вам придется использовать их комбинацию.
использование стиля text-transform отображает тип только в верхнем регистре, хотя значение вполне может быть в нижнем регистре.
JavaScript изменит текущий текст на верхний только после изменения поля или потери фокуса
вы можете использовать jquery gazler или просто встроенный javascript
например onblur='javascript:this.value=this.value.toUpperCase();'
Это означает, что текстовое значение будет отображаться в верхнем регистре и фактически будет отображаться в верхнем регистре, когда значение изменяется/элемент управления теряет фокус.
HTH Сэм
Чтобы основываться на ответе @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 );
})