Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как сдвинуть текст влево в input[type="text"] при переполнении...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
armancho7777777 Супермодератор
Отправлено: 18 Сентября, 2012 - 18:49:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Всем привет!
Есть текстовое поле ввода (input[type="text"]).
В него динамически вставляется некая строка.
После вставки возвращается фокус в конец стоки.
Проблема в том, что если длина строки превышает ширину поля, то конец строки скрывается за пределами правой границы поля.
Так вот, вопрос:
как сдвинуть текст влево в input-а после того, как фокус возвращён в конец поля?

(Добавление)
Чует моё сердце, - никак это ни реализовать Радость
В силу отсутствия состояния скролла.
Придётся с textarea мутить.

(Отредактировано автором: 18 Сентября, 2012 - 19:20:07)

 
 Top
DlTA
Отправлено: 18 Сентября, 2012 - 19:36:18
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




если через опу.
то можно попробывать
положить инпут в блок
по потере фокуса. считать число символов, указав такоеже значение для инпута, выровнять инпут в блоке по правому краю, и скрыть/обрезать все чтобудет выходить за блок родитель
 
 Top
Саныч
Отправлено: 18 Сентября, 2012 - 19:39:01
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




почему бы просто не сделать textarea высотой с инпут?


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
DlTA
Отправлено: 18 Сентября, 2012 - 19:44:53
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




Саныч пишет:
почему бы просто не сделать textarea высотой с инпут?

как показывают опыты это лучший вариант.
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Сентября, 2012 - 19:47:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Саныч пишет:
почему бы просто не сделать textarea высотой с инпут?

Ну я же написал, что так и сделаю )
(Добавление)
Поспешил, тему создал.
Плохо, что хорошая мыслЯ приходит опослЯ )
(Добавление)
Хотя нет, в textarea строки переносятся при заполнении.
Но я решил просто динамически менять высоту поля до определённого значения.
Так даже лучше.
 
 Top
DelphinPRO
Отправлено: 18 Сентября, 2012 - 19:56:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




armancho7777777, проще простого, еслия я правильно понял

CODE (html):
скопировать код в буфер обмена
  1. <input type="text" value="" id="input">

CODE (javascript):
скопировать код в буфер обмена
  1. var e=document.getElementById('input');
  2. e.value='1234567890asdfdasfghfgjghkjfgjdfghsghsdfghfghfghtruhtyjnhn';
  3. e.focus();
  4. e.setSelectionRange(e.value.length, e.value.length);


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Сентября, 2012 - 19:56:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




DelphinPRO, ну конечно блин ))
Вот ведь думал об этом )) Ей Богу ))
setSelectionRange / createTextRange

Только, точнее так))
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. if(e.setSelectionRange)
  3. {
  4.         e.setSelectionRange(e.value.length, e.value.length);
  5. }
  6. else
  7. {
  8.         var range = e.createTextRange();
  9.         range.collapse(true);
  10.         range.moveEnd('character', e.value.length);
  11.         range.moveStart('character', e.value.length);
  12.         range.select();
  13. }                              
  14.  

IE setSelectionRange не понимает.
Для него createTextRange.
Спасибо DelphinPRO ! Подмигивание

(Отредактировано автором: 18 Сентября, 2012 - 20:13:41)

 
 Top
Саныч
Отправлено: 18 Сентября, 2012 - 20:12:52
Post Id



Участник


Покинул форум
Сообщений всего: 1365
Дата рег-ции: Июль 2010  
Откуда: Украина, Запорожье


Помог: 62 раз(а)




armancho7777777 пишет:
Хотя нет, в textarea строки переносятся при заполнении.
вырезай переносы строк и все


-----
Все возражают против того, что я гений, хотя никто еще так меня не назвал. - Орсон Уэллс
 
 Top
armancho7777777 Супермодератор
Отправлено: 18 Сентября, 2012 - 20:14:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




Саныч пишет:
вырезай переносы строк и все

Не, проще: white-space:nowrap;
Тема закрыта!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB