Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js][xhtml] form - jak wyeliminować atrybut name potrzebny w js
Forum PHP.pl > Forum > Po stronie przeglądarki
DooBLER
Witam
Na wstępie napiszę, że z JS jestem cienki

Napisałem sobie prosty skrypcik walidacji formularza:
Kod
function checkform()
{
    for (i=0; i < fieldstocheck.length; i++)
    {
        if (eval("document.forms['subscribeform'].elements['"+fieldstocheck[i]+"'].value") == "")
        {
            alert("Proszę wprowadzić "+fieldnames[i]);
            eval("document.forms['subscribeform'].elements['"+fieldstocheck[i]+"'].focus()");
            return false;
        }
    }
    
    return true;
}



var fieldstocheck = new Array();
var fieldnames = new Array();

function addFieldToCheck(value, name)
{
    fieldstocheck[fieldstocheck.length] = value;
    fieldnames[fieldnames.length] = name;
}


jak widać znacznik form musi mieć atrybut name="subscribeform'

Czy da się jakoś wywalić atrybut name i zastąpić go id="costam" tak żeby skrypt wyciągał przy pomocy np. GetElementById numer w obiekcie document.forms ?
albo jako to jakoś inaczej obejść

piszę strony w poprawnym xhtml'u (wysyłany jako application/xhtml+xml) i walidator w3c mi się czepia "there is no attribute "name"

pozdrawiam
jacekl
Atrybut 'name' musi być, natomiast nic nie szkodzi na przeszkodzie, żebyś dodał także 'id' i odwoływał się do pola formularza przez document.getElementById(id)

JL
revyag
Cytat
Atrybut 'name' musi być,

Nie musi i nie powinien być.

Do formularzy można się odwoływać tak:
Kod
document.forms[0]
albo poprzez id. Także spokojnie wyrzucaj to name.
jacekl
Oczywiście to zależy od definicji słowa "musi".

Ja kierowałem się tą: "attribute name required for all [INPUT elements] but submit and reset" (http://www.w3.org/TR/html401/interact/forms.html#h-17.4)

JL
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.