ugrás a tartalomhoz

JS dinamikus inputra hivatkozás

PredMan · 2008. Feb. 24. (V), 16.12
Sziasztok!

dinamikus inputokra hogyan lehet hivatkozni?
van egy olyan kódom, amely segítségével betudok szúrni egy inputba egy tetszőleges karaktert. Így:


<a onclick="insertcode_leiras('&Oslash;'); refocus_leiras(); return false;" href=""><img src="Images/atmero.jpg" border="0" vspace="3" /></a>

Addíg nincs is gond, amíg egy már létező inputra hivatkozok, mert ugye annak a neve fix. De ha én dinamikusan hozom létre az inputot, akkor mire hivatkozzak?


function changeIt() {
	var i = 1;
	my_div.innerHTML = my_div.innerHTML +"<input type='text' name='fajta[]'>&nbsp;&nbsp;<input type='text' name='adat[]'>&nbsp;&nbsp;<input type='text' name='ar[]'><br>"
}

a cél az lenne, hogy a karaktert abba a dinamikusan létrehozott inputmezőbe illessze (adat[]-ba kéne valahogy), amelyiken éppen a focus() van.

Tudnátok ebben segíteni?

előre is köszönöm!
 
1

jQuery és egy kis trükk

Velias9 · 2008. Feb. 26. (K), 17.57
A jQuery-t innen tudod letölteni.
Az általam felhasznált függvények leírását itt és itt találod meg.

A JavaScript kód:

<script type="text/javascript">
<!--

window.fokusz = "";

function changeIt()
{  
	var i = 1;
	azonosito = azonositotKeszit();
	my_div.innerHTML += "<input type='text' name='fajta[]' />&nbsp;&nbsp;<input type='text' name='adat[]' id=" + azonosito + " onfocus='fokuszBeallito($(this).id());' />&nbsp;&nbsp;<input type='text' name='ar[]' /><br />"  
}

function fokuszBeallito(azonosito)
{
	window.fokusz = azonosito;
}

function azonositotKeszit()
{
	while (true)
	{
		azonosito = Math.floor(Math.random * 10000);
		segito = $(*).filter("#" + azonosito);
		if (segito == "")
		{
			break;
		}
	}
	return azonosito;
}

-->
</script>
(Az lenne a legjobb (és valószínűbbé tenné a helyes működést), ha a Javascript kódban a onfocus='fokuszBeallito($(this).id());' helyére be tudnál valahogy tenni valami ilyemit: onfocus='fokuszBeallito(" + azonosito + ");')

Ebből valami ilyesmi HTML kód lesz:

...

<input type='text' name='fajta[]' />&nbsp;&nbsp;
<input type='text' name='adat[]' id='9513' onfocus='fokuszBeallito($(this).id());' />&nbsp;&nbsp;
<input type='text' name='ar[]' /><br />

...
Ezek után a karakterbeszúró függvényed a window.fokusz változóból tájékozódhat a fókuszban lévő mezőről. Ezt megteheti getElementById(azonosito) vagy a $("input").filter("#" + azonosito) függvények valamelyikével.

A programot nem tudtam kipróbálni, úgyhogy nem bizos, hogy jó, de ha mást nem legalább valakinek ötletet adhat egy tényleg működőképeshez.

Remélem tudtam segíteni.