Tjah, den type validering kan simpelthen ikke bruges under xhtml strict/1.1, hvis man skal følge specifikationerne ...
-- men det er der heldigvis ingen browsere, der gør, de tolker det alle som voldsomt fejlfyldt html3.2/4.01 !-)
-- og der er en række uhensigtsmæssigheder, som tyder på, at du har kigget mere i html.dks validering end i min ...
Hvis du skal have fat i attributter med xhtml kan du _kun_ bruge .getAttribute, og uanset at du kan sætte attributter på, vil det ikke kunne valideres af w3c, hvis de står hard-coded, derfor ideen med de skjulte felter, som sikrer en vis fremadkompatibilitet ...
-- i xhtml bør du også få fat i defaultværdien af value, hvilket betyder, at det simpelthen ikke kan lade sig gøre at aflæse en værdi dynamisk, hvis du benytter denne eksperimentelle mark-up ...
Prøv f.eks.
<%@Language = VBScript%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"
http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<title>Dynamisk validering</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="javascript" type="text/javascript">
function valider(form) {
var objForm = form.elements;
for(i=0,im=objForm.length;im>i;i++) {
var arrVal = new Array();
arrVal = objForm[i].validering.split(";");
switch(objForm[i].type) {
case "text":
for(j=0,jm=arrVal.length;jm>j;j++) {
switch(arrVal[j].replace(/\d/g,"")) {
case "min":
minLen = arrVal[j].match(/\d+/)[0];
valueLen = objForm[i].value.length;
if(minLen>valueLen) {
alert(objForm[i].fejl);
objForm[i].focus();
return false;
}
}
}
}
}
return true;
}
</script>
</head>
<body>
<form id="minForm" method="post" action="../validering/" onsubmit="return valider(this);">
<label for="test1">Test 1:</label> <input id="test1" name="test1" type="text" validering="min3;max5" fejl="Feltet test 1 skal udfyldes med minimum 3 tegn."><br>
<label for="test1">Test 2:</label> <input id="test2" name="test2" type="text" validering="min5;max8" fejl="Feltet test 2 skal udfyldes med minimum 5 tegn."><br>
<input id="submit" type="submit" value="Send">
</form>
</body>
</html>