2010-10-04 2 views

ответ

64

Я бы использовал CSS для этого.

Просто добавьте text-transform: uppercase к вашему дизайну, а затем со стороны сервера вы можете преобразовать его в верхний регистр.

input { 
    text-transform: uppercase; 
} 
+3

Вы можете добавить класс или этот стиль программно с помощью jQuery, если хотите, но это, вероятно, то, что вам нужно. –

+0

интересный подход – mcgrailm

+0

+1, хорошо, я тоже думал о всех видах jquery/js решений, но это лучше – Michel

13
$('input[type=text]').keyup(function() { 
    $(this).val($(this).val().toUpperCase()); 
}); 
+0

-1 Только изменения после потери фокуса, а не как вы печатаете. http://jsfiddle.net/XJKgs/ – Greg

+0

Действительная точка должна сочетаться с решением Brandon, чтобы правильно изменить его на стороне клиента. Изменен код немного для обновления при нажатии клавиши. – Gazler

+6

Я удалил свой downvote, потому что теперь он делает то, что спрашивает OP. Но если бы я был пользователем веб-сайта, который сделал это «изменение ключа», я бы выследил ответственного человека **. Видя, как буквы меняются, когда вы печатаете, вы дезориентируете, и попытка вернуться к редактированию введенных вами значений вызывает разочарование, поскольку курсор продолжает двигаться до конца. http://jsfiddle.net/HPapz/1/ – Greg

1

Возможно, вам потребуется использовать комбинацию из них.

, используя стиль текстового преобразования, отображает только тип в верхнем регистре, хотя значение может быть строчным.

Javascript изменится только текущий текст в верхний раз меняется поле или фокус теряется

вы можете использовать JQuery gazler или просто рядный Javascript

например ONBLUR = 'JavaScript: this.value = this.value.toUpperCase();'

Это означает, что текстовое значение будет отображаться в верхнем регистре и фактически быть верхним, когда значение изменяется/управление теряет фокус.

НТН Сэм

+0

Я могу использовать onKeyUp – randomizertech

+0

Единственная проблема с onblur заключается в том, что если пользователь просто нажимает клавишу ввода, скажем, чтобы отправить форму, текст не будет в верхнем регистре. – Joseph

5

Использования
oninput='this.value=this.value.toUpperCase();
Это событие как раз для таких случаев, срабатывает после ввода пользователя (нажатие клавиши), но перед обновлением (отображается значение), так что с этим набранным текстом не будет мерцать при преобразовании, а также правильность значения (не только использование только стиля для изменения отображения без изменения реальных данных).

0

Чтобы построить на @ ответ 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); 
}) 
Смежные вопросы