Autor Zpráva
MilanJ
Profil
Mám formulář, který je vygenerovaný pomocí PHP. Dle určitých podmínek buď vygeneruje nebo naopak nevygeneruje určité políčko formuláře. Formulář kontroluji JavaScriptem, který ale nepozná, jestli políčko existuje nebo ne.

Jak zjistím, jestli určité pole formuláře s určitým ID existuje nebo ne?

Děkuji.
MilanJ
Profil
Políčko formuláře vypadá takto: <input name="priloha" type="file" id="idPriloha" />

O JS toho moc nevím, téměř nic, jen jsem zkoušel ověřit existenci takto:

if (this.formular.priloha)
{ // existuje }
else {// neexistuje}


...ale nefunguje to.
Joker
Profil
if(document.forms && form=document.forms["*id formuláře*"])
if(form.id_daneho_prvku == undefined){
// prvek neexistuje
} else{
// prvek existuje
}
MilanJ
Profil
Joker
Jak říkámm, nejsem v JS seběhlý, nefunguje mi to.
Vložil jsem Tvůj kód do svého scriptu, ale něco tam je špatně, nefunguje to.


if(document.forms && form=document.forms["idPriloha"])
if(form.idPriloha == undefined)
{
window.alert("Formulářové políčko existuje");
if (document.getElementById('idPriloha').value != "")
{
window.alert("Příloha je vložena");
}
else
{
window.alert("Při vkládání nabídky musí být vložena i příloha!");
}
}
else
{
window.alert("Formulářové políčko chybí");
}

Joker
Profil
V tom document.forms["neco"] má být ID formuláře, zatímco v tom form.neco má být ID políčka

Krom toho to máte obráceně; if(form.idPriloha == undefined) znamená, že to políčko neexistuje.
MilanJ
Profil
Joker
Stále mi to v konzoli JS vypisuje chybu "chybná syntaxe "na řádku, kde je if(document.forms && form=document.forms['idFormular'])

Proč?
MilanJ
Profil
Joker
Script jsem opravil:


if(document.forms && form=document.forms['idFormular'])
if(form.idPriloha != undefined)
{
window.alert("Formulářové políčko existuje");
if (document.getElementById('idPriloha').value != "")
{
window.alert("Příloha je vložena");
}
else
{
window.alert("Při vkládání nabídky musí být vložena i příloha!");
}
}
else
{
window.alert("Formulářové políčko chybí");
}


...přesto nefunguje...pořád ta "chybná syntaxe". :/
MilanJ
Profil
Joker
Nechybí tam nic?
los
Profil *
Chybná syntax je kvôli tomu, že priradenie v tej prvej podmienke nie je ozátvorkované.

Keď už máš nastavené id na tom políčku, tak sa k nemu nemusíš dostávať prostredníctvom formulára, ale môžeš ho získať priamo:
var input = document.getElementById("idPriloha");


if (input && !input.value)
alert("Při vkládání nabídky musí být vložena i příloha!");
MilanJ
Profil
los + Joker
Díky moc, už jsem to pochopil. :)
Toto téma je uzamčeno. Odpověď nelze zaslat.