2013-08-28 1 views
0

Нравится http://www.jacklmoore.com/autosize/ Но не textarea, вход. Это не работает с примером input.For:Как я могу вводить autoexpand, а не textarea?

<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script> 
<script src='jss/jquery.autosize.js'></script> 
     <script> 
      $(function() { 
       $('.normal').autosize(); 
      }); 
     </script> 
    <body> 
     <textarea class='normal'></textarea> 
    </body> 

Я need- ввод фиксированной ширины, высота изменяется

<input class='normal'/> 

Помощь пожалуйста

+0

http://jsbin.com/ahaxe – Alvaro

+0

Ах да, вход фиксированной ширины, изменения высоты –

ответ

0

Вы можете использовать contenteditable DIV:

<div contenteditable="true" class="normal"></div> 
.normal { 
    width: 150px; 
    min-height: 16px; 
    overflow: hidden; 
    padding: 3px 3px 2px; 
    border: 1px solid #aaa; 
    border-radius: 2px; 
    font-size: 11px; 
    font-family: Helvetica,Arial; 
} 

jsFiddle: http://jsfiddle.net/z4EX6/

0

Это то, что вы можете использовать:

$(".normal").bind("keydown", function() { 
     var charWidth = $(this).css("font-size").replace("px", "") * 0.5; 
     var newWidth = (($(this).val().length + 10) * charWidth); 
     var minWidth = 100; 
     var maxWidth = 1000; 
     if (newWidth > minWidth && newWidth < maxWidth) { 
      $(this).width(newWidth); 
     } 
    }); 

Фактор 0,5 используется при расчете ширины символа будет зависеть от типа используемого шрифта. Однако 0,5, должно быть достаточно для большинства типов шрифтов.

Задание минимальной и максимальной ширины гарантирует, что ширина элемента управления не выходит за пределы.

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

  • Нет связанных вопросов^_^