Autor Zpráva
blahapet
Profil
Ahojda všichni,
mám malý problém, který nedokážu vyřešit. Představte si formulář, v něm různé prvky. Do jednoho textového pole uživatel napíše celé číslo a v momentě, kdy uvolní klávesnici tak potřebuju tu hodnotu kterou napsal vsadit do cyklu for níže, kterým generuji další formulářové prvky (tabulky). Zkrátka, když napíše 5, tak aby se níže uvedeným cyklem for vygenerovalo po uvolnění klávesnice v poli např. 5 daších inputů (tj jen obrazně).

Zkoušel jsem napsat něco jako..

for(a = 1; a <= document.getElementById('input').value; a++){
... ... ...
}

ale nevím jak to ošéfovat z onkeyup v tom text. inputu.

Díky za každou radu!
1Pupik1989
Profil
Musíš použít parseInt(), pro prevod na integer, jinak se tam zadava string.
blahapet
Profil
Nějak nechápu kam mám ten parseInt() dát..? Do cyklu for()? Tam prostřední parametr musí být logicky číslo a uživatel musí zadat taky číslo, to si vypodmínkuju. Prosím buď konkrétní, díky!
blahapet
Profil
Už to asi chápu, hodnota value u inputu je typu string a já ji musím převést na číslo, takže si troufnu řící, že parseInt obalím ten druhý parametr v cyklu for(). To nic ale nemění na tom, jakým způsobem zavolám tu událost v "onkeyup" v inputu, jak jsem psal výše, aby se celý proces spustil.
_es
Profil
blahapet:
To nic ale nemění na tom, jakým způsobem zavolám tu událost v "onkeyup" v inputu, jak jsem psal výše, aby se celý proces spustil.
<input onkeyup="JS kód">
alebo:
nejakoZískanýJSObjektInputu.onkeyup = funkcia;
blahapet
Profil
Já vím, že v inputu u onkeyup bude js kód, ale jakej. Omlouvám se, v JS nejsem moc zběhlej...
_es
Profil
blahapet:
v inputu u onkeyup bude js kód, ale jakej
No a my máme ako prísť na to, čo chceš aby sa po pustení nejakej klávesy stalo?
Jasnovidcov tu veľa nie je.
blahapet
Profil
Viz. výše. Potřebuju tu hodnotu dosadit do cyklu for(a =1; a <= hodnota pole s formuláře; a++) a netuším, jak to spustit s události onkeyup, co tam napsat.
Tin
Profil
<input onkeyup=funkce()>

...
<script>
function funkce(){
for(...){}
}
</script>
RockFire
Profil
Konkrétně tedy:

<script type="text/javascript">
function klavesa(id)
{
  for(a = 1;a <= parseInt(document.getElementById(id).value); a++)
  {
  //Něco
  }
}
</script>

<input type="text" id="neco" onKeyUp = "klavesa('neco')">

Akorát je to hodně nedokonalý, chtělo by to ošetřit spoustu věcí, ale je to to, co jsi chtěl.
blahapet
Profil
Díky moc za Vaši obětavou pomoc, už jsem to tak nějak rozchodil, ale stále to
není ono. Konstrukci mám následující.

<script type="text/javascript">

function cyklus(cislo){
for(z = 1; z <= cislo; z++){
document.write('Nějaký text<br />');
}
}

</script>


<input type="text" name="cislo" id="cislo" size="1"
onkeyup="cyklus(this.value);" />


<script type="javascript">

cyklus() //na tomto místě pod inputem potřebuju aby se vypsala ta funkce

</script>



Vše funguje, jenže po akci onKeyUp se zobrazí jiná stránka s výslekem té funkce
a předchozí zbytek stránky tam není. Potřeboval bych tu fci zkrátka vypsat dole
pod inputem na původní stránce, snad mi rozumíte.

Děkuji moc, připadám si jak otravnej magor...
1Pupik1989
Profil
pod input stačí dát nějaký span, nastavit mu id a ve for si udělat string, do kterého se zapíšou hodnoty v cyklu for. Pak stačí jen přes document.getElementById("nazev_spanu").innerHTML=hodnoty zapsat hodnoty z for.
_es
Profil
blahapet:
Viď: Psaní metodou document.write po načtení stránky maže stránku a Používejte var.

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