Autor Zpráva
David1234
Profil *
Ahoj

Mám tuto funkci, která mi kontroluje před odesláním formulář, zda má zaškrtnut radiobutton. Pokud ne, formulář se neodešle :

function kontrola(vstup)
{
var navrat = true;
if ((document.getElementById('vysledek_ano').checked!=true)
|| (document.getElementById('vysledek_ne').checked!=true)
|| (document.getElementById('vysledek_jednam').checked!=true))
{
alert("Nezadali jste výsledek kontaktu.");
return false;
var navrat = false;
}
return navrat;
}

HTML:
<input type="radio" name="vysledek" id="vysledek_ano" value="1" >Prodej
<input type="radio" name="vysledek" id="vysledek_ne" value="0" >Odmítnutí
<input type="radio" name="vysledek" id="vysledek_jednam" value="2" >Zatím nerozhodnuto - jednáme dál

Pokud kontroluji v podmínce if jen jedun hodnotu, funguje správně. Ale se třemi hodnotami spojenými || (logické OR) si neporadí.

Nevíte kde je chyba?

David
peta
Profil
document.getElementById('vysledek_ano').checked
checked=""
checked="checked"
checked=true
checked=false
!0 || !0 || !0 = 1
!1 || !0 || !0 = 1
cili
!0 => checked!=true => checked==false = nezaskrtly => vysledek !0 = 1
1 || 1 || 1 = zadny zaskrtly = 1
0 || 1 || 1 = 1 zaskrtly = 1
0 || 0 || 1 = 2 zaskrtle = 1 (ale tento pripad nenastane, protoze je mas sdruzene pres NAME)
0 || 0 || 0 = vsechy 3 zaskrtle = 0 (ani tento pripad nenastane, protoze je mas sdruzene pres NAME)

Chyba je mezi zidli a klavesnici, v programatorovi.
Doporucuji posadit na ni plysoveho medvidka :)
David1234
Profil *
Doufám, že tvá odpověď alespoň posílila tvé ego, protože pokud jsi odpovídal aby jsi mi pomohl tak se tak nestalo. Tvé odpovědi nerozumím.

Že tam je chyba vím a taky vím, že nejsem dobrý programátor. Budu rád, když mi přesto někdo pomůže...
habendorf
Profil
No, moc nevím co řešíš, protože radio bude mít vždycky jednu možnost checked.

Jinak chyba je logická, ta podmínka je špatně. Předpokládám, že to pořád alertuje, protože tam nutně vždy musí být dva unchecked. Tím pádem se vždy vyhodnotí pozitivně.
Toto téma je uzamčeno. Odpověď nelze zaslat.