Не удаляются пробелы из input'ов
Пытаюсь удалить пробелы из input'ов после события blur. Вроде все правильно написано, но почему-то не работает. Где моя ошибка? Вот код:
var form = $('#reg-form-act-2'); form.find(':input').not('#reg-btn-act-2').each(function() { $(this).blur(function() { var v = $(this).val(), v2 = $.trim(v); $(this).val(v2); }); }); |
seniormelikyan, кто учил так писать? :D
|
Консоль ошибок о чем повествует? Зачем each если можно сразу blur() ?
|
![]() |
Консоль пуста.
|
Чтобы при событии blur пробелы удалялись только у текущего input'а, а не у всех; чтоб не дергалась "картинка" лишний раз.
|
Как вариант...
$('#reg-form-act-2 :input').not('#reg-btn-act-2').blur(function() { this.value = $.trim(this.value); }); |
Цитата:
|
$('#reg-form-act-2 input:text[id!="reg-btn-act-2"]').on('blur', function() { this.value = $.trim(this.value); }); |
ksa, опередил пока я писал :)
|
Цитата:
|
Ruslan_xDD, этот вариант менее читаем, и более затратен (хотя это ниочем)
|
Оказывается, проблема в <input type="email">, который почему-то игнорирует функцию trim. Кто-нибудь знает, как этот косяк решить без смены типа input'а?
|
Цитата:
Поскольку в доке по trim() написано Цитата:
|
Как ни странно, но да, попадает.
|
Добавил email-input в выборку вручную на всякий случай - все равно не помогло.
![]() |
Консоль по-прежнему девственно пуста.
|
Цитата:
|
Например так...
var val=' 1234 '; val=val.replace(/(^\s*)|(\s*$)/g,''); alert('-'+val+'-'); |
Этот input какой-то волшебный. Попробовал, поменял тип на "текст" - все работает, обратно - опять не пашет. Еще делал так (рис.1) и так (рис.2):
![]() ![]() |
Оригинальный строковый метод trim() новой версии EcmaScript тоже не работает.
|
И $.trim, кстати, - тоже.
|
Что выдает console.log(this.value) для input[type=url]?
Может в нем пробелы заменяются на какой-то другой символ автоматически? Поставь точку остановки на этой строке и посмотри все внимательно. |
Часовой пояс GMT +3, время: 03:44. |