Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   ИЕ криво работает с textarea (https://javascript.ru/forum/css-html-internet-explorer/8211-ie-krivo-rabotaet-s-textarea.html)

ildaroit 15.03.2010 00:21

ИЕ криво работает с textarea
 
Братья всем привет, такой вопрос - есть скрипт зависимого списка, выбираю в чекбоксе значение, в текстареа должно появиться к нему пояснение:
var Мышь = Array("Компьютерная мышь");
var Пилот = Array("Пилот (тройник)");
function showNames(v){
var mas = eval(v);
var el = document.getElementById("names");
while(el.childNodes.length>0){
el.removeChild(el.childNodes[el.childNodes.length-1]);
}
for(var i=0;i<mas.length;i++){
var opt = document.createElement("option");
opt.innerHTML=mas[i];
el.appendChild(opt);

.. <option value="Мышь">Мышь</option>
<option value="Пилот">Пилот (тройник)</option> ..

<textarea id="names" rows="6" cols="40" name="comment">
</textarea>

- так вот в Опере все работает, в ИЕ работает но если пояснение большое то когда навожу мышкой она как бы не дает выделить сходу текст, дает если только снизу начать выделение, курсор становится крестиком, в FF и Chrome не раб скрипт вообще.

Тут по делу видно конечно что массив то и не нужен (до этого использовал), но тем не менее думаю не в этом дело.

Подкажите пж - почему ИЕ нормально не дает выделить текстареа а FF не обрабатывает совсем (в текстарея ничего не появляется при выборе)?
Возм. есть более удачная реализация?
Заранее Благодарю!

subzey 15.03.2010 09:51

А зачем Вы оption к textarea цепляете?

ildaroit 15.03.2010 10:02

Ну клиент выбирает в option один из вариантов а в textarea появляется его описание.

subzey 15.03.2010 15:55

var el = document.getElementById("names"); // HTMLTextareaElement
…
var opt = document.createElement("option"); // HTMLOptionElement
el.appendChild(opt); // option — новый дочерний элемент textarea


В итоге получается:
<textarea>
	<option>…</option>
</textarea>

А textarea-то не то, что option, вообще, дочерних элементов иметь не может.

ildaroit 16.03.2010 05:27

Спасибо брат, заменил option на text и все стало как надо.
Эта функция до этого обрабатывала как раз 2 зависимых select.

К сож. не совсем знаю все эти функции - подскажи пж где можно почитать об этом начинающему?

И еще вопрос - подскажи пж почему в FF и Chrome она не работает?
Ну и последнее - скажи свой кошелек на почту я копеечку закину за помощь в трудную минуту :)

subzey 16.03.2010 09:22

var el = document.getElementById("names");
while(el.childNodes.length>0){
el.removeChild(el.childNodes[el.childNodes.length-1]);
}
for(var i=0;i<mas.length;i++){
var opt = document.createElement("option");
opt.innerHTML=mas[i];
el.appendChild(opt);

вот это, судя по коду, можно попробовать заменить на
var el = document.getElementById("names");
el.innerHTML = mas.join("");

может и заработать.

А денег не нужно — лучше выпей пива и вспомни добрым словом :)

ildaroit 16.03.2010 20:54

ты прав друг - все заработало! респект тебе.
а насчет денег - не спеши отказываться, всегда успеешь :)

ildaroit 16.03.2010 20:55

кстати тему можно поменять на "я криво понимаю javascript, помогите!" :D

ildaroit 16.03.2010 20:56

отправил тебе личное сообщение


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