Autor Zpráva
gerix
Profil *
Dobrý den,

v javascriptu začínám a potřeboval bych poradit s nejspíše triviálním problémem.

Mám script, který po zmáčknutí tlačítka přidá položku (ID, textove pole, tlačítko smazat).
Script je omezený na přidání nejvýše 5 položek a nejvyžší id může být 5.

Teď k problému. Chtěl bych tam dodělat menší vylepšení.

Dejme tomu, že uživatel klikne na přidat, vyplní první textové pole a přidá další položku. No a já bych chtěl, aby při přidání dalšího textového pole se původní text, který vyplnil v první položce změnil na "klasický text" => to znamená, aby se z textového pole stal obyčejný text.

A v případě, že by náhodou chtěl upravit tu původní položku, tak aby tam bylo tlačítko, kterým by vyvolal zpět textové pole a mohl to upravit.

Doufám, že jsem to vysvětlil smysluplně:)

Díky za každou radu.

Tady je odkaz na živou ukázku:

Odkaz

Tady je náhled jak bych chtěl, aby to vypadalo



Tady je kompletní script:
<script>

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 = "ID:" + nejmensiCislo + " přidáno! <input type=\"text\">  <a href=\"javascript:;\" onclick=\"removeElement(\'"+divIdName+"\')\">Vymazat pole ID:" + nejmensiCislo + "</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--;
}

</script>




<input type="hidden" value="0" id="theValue" />
<p><a href="javascript:;" onclick="addEvent();">Přidat</a></p>
<div id="myDiv"> </div>
Pospyrus
Profil
obal to spanem a pak tam přes innerHTML dej ten text z inputu:

<span id=\"span-input" + nejmensiCislo + "\"><input id="\input" + nejmensiCislo + "\" type=\"text\"></span>
document.getElementById("span-input1").innerHTML=document.getElementById("input1").value;


a po kliknutí na edit udělej opak:

document.getElementById("span-input1").innerHTML="<input id="input1" type=\"text\" value=\""+document.getElementById("span-input1").innerHTML+"\">";
gerix
Profil *
Pospyrus:

Nemohl by jsi mě prosím navést ještě blíž? Zkouším to, ale nějak mi to nechce fungovat:(
gerix
Profil *
Zkusím se zeptat trošku jinak? Byl by ochotný to někdo nakódovat? upravit stávající kód podle mých představ? Pokud ano... za kolik?:)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0