2014-11-25 2 views
0

У меня есть текстовое поле для ввода полного имени пользователя.jQuery trim для обязательного поля

Теперь на клавиатуре я вызываю следующий код (часть моего вызова changeAction);

target.value = $.trim(target.value); 

Таким образом, код обрезает значение, введенное пользователем.

Кроме того, поскольку это обязательное поле, я использую его для включения кнопки отправки.

Теперь проблема заключается в том, что из-за вышеприведенного кода пользователь вводит какое-либо пространство (скажем, набрав «Mike Dennis»), ему не разрешено (после Майка), так как вызывается trim()?

Как исправить это, гарантируя, что работает другая логика (в частности, включение кнопки)? я не могу использовать «размытости» событие здесь ..

+1

Запустите этот код при потере фокуса, а не на клавиатуре –

+1

$ ('# elementofInterest'). On ('blur', function (e) {e.target.value = $ .trim (e.target.value) ;}) –

+0

Я знаю, что это вариант ... но, к сожалению, мое требование заключается в том, что мне нужно запускать keyup .. как пользовательские типы ... – testndtv

ответ

0

Если вы не позволить пользователю вводить пробелы только и обрезки после того, как пользователь закончил набрав

Вот рабочая скрипку http://jsfiddle.net/v8qj2suc/2/

HTML,

<input type="text" id="elementOFInterest" />

Javascript

$("#elementOFInterest").on('keyup', function (e){ var target = e.target; if($.trim(target.value) == ""){ target.value = ""; } }); $("#elementOFInterest").on('blur', function (e){ var target = e.target; target.value = $.trim(target.value); });

Смежные вопросы