Autor | Zpráva | ||
---|---|---|---|
Ota Profil * |
#1 · Zasláno: 7. 2. 2011, 18:06:45
Dobrý den, mám script, který mi přidává "pole" do stránky a zároveň je umí i zpětně mazat.
přidávaný počet elementů je omezený na 5 a každý má svoje ID >> to znamena, že když 5x kliknu na "Přidat pole" šesté už se nepřidá. K problému, který řeším. Dejme tomu, že přidám všech 5 polí a smažu pole číslo 3, pak přidám další pole a přidá se mi pole s ID 6 >> Ja to chci mít omezené maximálně na ID do 5. Jak to tedy udělat, aby při smazání jednoho pole a následné přidání bylo zpět to smazané? Udělat tam nějakou kontrolu které pole chybí a to potom doplnit? S javascriptem začínám. Programuji především v php. Díky za jakoukoliv odpověd.. snad jsem popsal problém:) Tady je script: <script> function addEvent() { if(addEvent.elmCount >= 5) { return; } addEvent.elmCount++; var ni = document.getElementById('myDiv'); var numi = document.getElementById('theValue'); var num = (document.getElementById("theValue").value -1)+ 2; numi.value = num; var divIdName = "my"+num+"Div"; var newdiv = document.createElement('div'); newdiv.setAttribute("id",divIdName); newdiv.innerHTML = "Pole číslo " + num + " přidáno! <a href=\"javascript:;\" onclick=\"removeElement(\'"+divIdName+"\')\">Vymazat pole ""+divIdName+""</a>"; ni.appendChild(newdiv); } addEvent.elmCount = 0; function removeElement(divNum) { var d = document.getElementById('myDiv'); var olddiv = document.getElementById(divNum); d.removeChild(olddiv); addEvent.elmCount--; } </script> <input type="hidden" value="0" id="theValue" /> <p><a href="javascript:;" onclick="addEvent();">Přidat pole</a></p> <div id="myDiv"> </div> |
||
Darker Profil |
#2 · Zasláno: 8. 2. 2011, 09:12:44 · Upravil/a: Darker
Můžeš projít cyklem for těch 5 divů, a pokud nějaký nebude existovat, tak ho vytvořit.
Místo elm.setAttribute("id","string") používej elm.id="string". function removeElement(divNum) { //univerzálnější verze var olddiv = document.getElementById(divNum); d.parentNode.removeChild(olddiv); addEvent.elmCount--; } //EDIT Tohle chodi: addEvent=function() { if(addEvent.elmCount >= addEvent.maxNodes) { return false; } addEvent.elmCount++; var nejmensiCislo=1; for(var i=1;i<=addEvent.maxNodes;i++) if(!document.getElementById("my"+i+"Div")){nejmensiCislo=i;break} var ni = document.getElementById('myDiv'); var numi = document.getElementById('theValue'); var num = (document.getElementById("theValue").value -1)+ 2; numi.value = num; var divIdName = "my"+nejmensiCislo+"Div"; var newdiv = document.createElement('div'); newdiv.id=divIdName; newdiv.innerHTML = "Pole číslo " + nejmensiCislo + " přidáno! <a href=\"javascript:;\" onclick=\"removeElement(\'"+divIdName+"\')\">Vymazat pole ""+divIdName+""</a>"; ni.appendChild(newdiv); } addEvent.elmCount = 0; addEvent.maxNodes = 5; removeElement=function(divNum) { var d = document.getElementById('myDiv'); var olddiv = document.getElementById(divNum); d.removeChild(olddiv); addEvent.elmCount--; } Zm2nil jsem to jen minim8ln2. |
||
Ota Profil * |
#3 · Zasláno: 8. 2. 2011, 15:07:08
Díky moc jsi zlatej. Tohle jsem přesně potřeboval..
|
||
Časová prodleva: 13 let
|
0