Динамическое создание елемента из динамически созданного элемента.
Здрасте!
Сразу к делу. Есть функция которая создает элемент -
function show(num){
var el=document.createElement("input");
el.setAttribute("name", "img["+num+"]");
el.setAttribute("type", "file");
el.setAttribute("style", "width:450px");
num++;
el.setAttribute("onClick", "show("+num+")");
fo = document.getElementById("chfiles");
fo.appendChild(el);
fo.appendChild(document.createElement("br"));
}
Т.е. она создает элемент input при изменении которого опять-же должна вызываться эта-же функция, которая создаст еще один элемент. Работает везде кроме ИЕ. ЧЯДНТ? |
el.onclick = function() {
show(num + 1);
}
Строчку num++ удалить. |
Цитата:
При том перестало работать и в опере и мазилле |
Работает.
|
Цитата:
Привожу скрипт целиком.
function show(num){
var el=document.createElement("input");
var desk=document.createElement("input");
var lab = document.createElement("lable");
el.setAttribute("name", "img["+num+"]");
el.setAttribute("type", "file");
el.setAttribute("style", "width:450px");
desk.setAttribute("name", "desk["+num+"]");
desk.setAttribute("type", "text");
desk.setAttribute("style", "width:450px");
desk.setAttribute("value", "Подпись");
desk.onFocus = function() {if(this.value=='Подпись'){this.value=''}};
lab.setAttribute("for", "photo["+num+"]");
el.onClick = function() {
show(num+1);
}
lab.innerHTML = "Фото"+(num+1);
fo = document.getElementById("chfiles");
fo.appendChild(lab);
fo.appendChild(el);
fo.appendChild(document.createElement("br"));
fo.appendChild(desk);
fo.appendChild(document.createElement("br"));
fo.appendChild(document.createElement("br"));
}
Он не работает ни в одном из браузеров!! При том не работает ни строка desk.onFocus = function() {if(this.value=='Подпись'){this.value=''}}; ни строка el.onClick = function() { show(num+1); } А если делать el.setAttribute("onFocus", "if(this.value=='Подпись'){this.value=''}") ; то это работает везде кроме ИЕ |
А если не onClick, а onсlick?
|
Цитата:
Спасибо, заработало! |
Напишешь им, только чтоб скопировали, все равно что-нить поменяют.
|
Цитата:
|
Исправления надо делать после первого запуска, а не до. Чтобы знать кто именно накосячил. Особенно, если "многого не знают, и надо объяснять".
З.Ы. Это так, совет. Без наездов :) |
Впредь буду знать, спасибо
|
| Часовой пояс GMT +3, время: 06:05. |