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;
}
{
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