Javascriptbe itt mit rontottam el?
Nagyon kezdo vagyok meg HTML-be is, nemhogy javascriptbe ugyhogy kerlek legyetek turelmesek, ha valami nagy baromsagot irtam. Szoval egy egyszeru programot akartam csinalni, ami annyibol all, hogy beirok par szavat, teljesen mindegy milyet, es a beirt szavak kozul random kiir egyet. Itt van a program:
<html>
<head>
</head>
<body>
<script>
var a = 0;
var nevek = [];
function gomb(){
var szo = document.getElementById("inp1").value;
nevek.push(szo);
a+=1;
document.getElementById("demo").innerHTML = a;
document.getElementById("inp1").innerHTML = "<input id='inputalas' value=''>";
}
function mondat(){
var randomSzam = Math.floor(Math.random() * a);
document.getElementById("demo2").innerHTML = nevek[randomSzam];
}
</script>
<p id="inp1"><input id="inputalas"></p>
<button onclick="gomb()">Katt ide</button>
<button onclick="mondat()">Mondat alkotas</button>
<p id="demo"></p>
<p id="demo2"></p>
<script>
</script>
</body>
</html>
Valaszokat elore is koszonom. :)
A fő - működésbeli problémát okozó - gond az alábbi sor:
var szo = document.getElementById("inp1").value;
ezzel az a gond, hogy az "inp1" azonosítójú elem egy bekezdés, aminek nincs value tulajdonsága, így a "Katt ide" gombra kattintáskor a szo változó értéke undefinied lesz, és az kerül be a tömbbe.
Ha ezt lecseréled erre:
var szo = document.getElementById("inputalas").value;
akkor e beviteli mező értékét fogja tartalmazni a szo változó.
Egy másik - bár marginálisabb, de csúnya - gond, hogy az "a" változó felesleges. Helyette ott a nevek tömb length tulajdonsága.
A harmadik probléma az alábbival van:
document.getElementById("inp1").innerHTML = "<input id='inputalas' value=''>";
helyette sokkal szebb:
document.getElementById("inputalas").value = '';
Szóval valahogy így:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!