JS dinamikus input VS Firefox
van ez a kód, ami DIV-be tölti be dinamikusan az inputokat. A gond az, hogy a FF új inputok létrehozásánál elfelejti az előző inputok tartalmát:IE-ben minden OK, de a FF elfelejti a beírt adatokat. Hogyan lehetne ezt kiküszöbölni? próbálkoztam a createElement függvénnyel ami működik is, de azzal meg az a gond, hogy azt csak külön formba tudom betölteni, de egy formom már van és nem szeretném megbojgatni az oldal szerkezetét.
segítségeteket előre is köszönöm!
■
<script language="javascript">
var x = 0;
function changeIt() {
var i = 1;
x++;
var my_div = document.getElementById("my_div");
my_div.innerHTML = my_div.innerHTML +"<input type='text' name='jellemzo[]' id='jellemzo"+x+"' size='30'> <input type='text' name='meret[]' size='20' value='Ø'> <input type='text' name='egyseg[]' size='10'> <input type='text' name='nettoar[]' size='10' onKeyPress='return numbersonly(this, event);'><br>";
setTimeout('berak()',100);
}
function berak() {
document.getElementById('jellemzo'+x).focus();
}
</script>
segítségeteket előre is köszönöm!
Sziasztok!
"jellemzo0 nincs definiálva".
segítségeteket előre is köszönöm!
Valószínűleg!
Ezen kívül a saját érdekedben jobban jársz, ha abbahagyod az (pl.) onKeyPress-nek ezt a formáját és a szabványos, kisbetűs (onkeypress) formáját használod. Amúgy ez vonatkozik az összes eseménykezelőre.
Ha ez nem működne, akkor én csináltam egy jQuery alapú ilyen műveletet végző programot és az működik. A hátránya, hogy kicsit lassabb, mint egy hagyományos JavaScript.
:(
Mi a hiba?
Amúgy megmutatom a kódot, csak meg kell keresnem és kíváncsi vagyok a hibára. Az előző hibajelzés alapján ez volt a hiba.
sikerült!
mégegyszer thx!
Meg fogom írni.
Tessék a script
Azonban ez neked nem biztos, hogy jó lesz, mert a kódod alapján táblázatba kéne mindez. Erre itt van egy nem letesztelt kód:
Ami fontos ebben a scriptben, hogy a 'table' elemen belül legyen egy 'tbody' elem is, mert a FireFox (tapasztalataim és a FireBug szerint) automatikusan oda teszi és ha nincs ott, akkor nem találja meg a jQuery az elemeket és kidobhatod az egészet.
Az általam használt függvények referenciáját itt találod meg és az általam használt jQuery csomagot (tudom, hogy van újabb is, de nekem múltkor nem működtek és nincs rá referenciám:( ) innen tudod letölteni.
thx!
még annyit, hogy ha én azt szeretném, hogy ezeknek a létrehozott inputoknak a neve ez legyen: "jellemzo[]", "meret[]" stb... /mint az eredeti kódomban/
akkor ha jól értettem a dokumentációt, így kell módosítani a kódot ugye?
mégegyszer kösz mindent!
Nem.
Az én elképzelésem szerint a te forrásod valahogy így nézhet ki:
Még egy-két dolog:
Észrevettem egy hibát a programomban. Amikor az 'id'-t megváltoztatja az a sor totál sz*r, de itt már ki van javítva.
Ezen kívül (nem tudom, hogy melyik szabványt használod) az XHTML szabvány szerint az üres elemeket (aminek nincs lezárópárja (pl.: input, img, meta, link, base, br ...) ) XML szabványnak megfelelően ' />' módon kell lezárni ' >' helyett.
Plusz (csak tanács) a 'td' elemen belül az 'align="center"' és a 'b' elem használata telljesen mellőzhető egy (esetleg külső fájlban tárolt) CSS kóddal, ami jobban támogatott az XHTML szabvány szerint (pl.: a 'font' elem használata tilos lett és helyette CSS van), ezenkívül a CSS tud néhány dolgot, amiről a HTML álmodni sem merne.
Remélem értettem a kérdésedet és arra válaszoltam. Ha még mindíg nem OK valami, akkor írj. De amint már említettem a kód nem kipróbált.
Jó szórakozást!
Bocsi
thx!