Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение ширины поля input в зависимости от значения (https://javascript.ru/forum/misc/2431-izmenenie-shiriny-polya-input-v-zavisimosti-ot-znacheniya.html)

AvaGet 24.12.2008 22:01

Изменение ширины поля input в зависимости от значения
 
Как сделать изменение ширины поля input в зависимости
от значения, котое ставит сайт в value, значения получаются разной длины,
input имеет параметр readonly, вот его код
<input onfocus="this.select()" type="text" readonly value="<? echo $get["name"]; ?>">


Не по теме: очень мало нормальных сайтов-учебников по javascript, я конечно понимаю что
можно везде все узнать но все-таки некоторые основы хочется в одном месте узнавать и на русском:)
Например использую онлайн учебник по HTML и CSS который называется хтмлбук, а по JS ничего подобного нету, вотъ:(

Gvozd 24.12.2008 23:29

честно говоря не совсем понял что вы хотите, сделать.
переформулируйте вопрос, пожаулйста
Вы хотите задавать статичную длину для поля, в зависимости от содержимого?
или независисмо?
или динамично менять по щелчку?
Пол поводу же учебника, все это тут есть
Статьи
Стандарт языка

AvaGet 24.12.2008 23:40

value="<? echo $get["name"]; ?>"

Это то, что сайт ставит в value, оно всегда разное, нужно чтобы длина input бы была равна количеству символов, т.е size=длине того слова, что дается скриптом

Андрей Параничев 24.12.2008 23:43

<input onfocus="this.select()" type="text" readonly value="<? echo $get["name"]; ?>" size="<?=sizeof($get["name"]);?>" />

AvaGet 24.12.2008 23:54

Это уже PHP конечно;)
Работает, правда почему-то считает этот size за 1 символ,
а в конкретном примере их было 5, в таблице стоит 120 символов VARCHAR:rolleyes:

Андрей Параничев 25.12.2008 01:59

Аттрибут size это и есть количества видимых символов в поле, т.е. ширина поля в символах.
Я думал вам это и нужно, а что вы на самом деле хотели?

Gvozd 25.12.2008 03:30

Андрей Параничев,
для строк правильно будет не sizeof(), а strlen()
первый будет всегда выдавать еденицу, ибо приводится к массиву с однгим элементом. можете проверить

Андрей Параничев 25.12.2008 04:22

Gvozd,
Тьфу, точно ведь. Недавно вроде с php слез, а все позабывал.
<input onfocus="this.select()" type="text" readonly value="<? echo $get["name"]; ?>" size="<?=strlen($get["name"]);?>" />

Gvozd 25.12.2008 11:05

Андрей Параничев,
я с него не слезал, ибо он является моим основным языком на данный момент.
Но иногда тоже пишу на автомате sizeof() :D

AvaGet 25.12.2008 16:29

Все работает, спасибо огромное:o


Часовой пояс GMT +3, время: 10:00.