Jag har gjort en formulärvalidering i JavaScript/RegExp som fungerar utmärkt. Men problemet blir när man vill validera flera formulär på samma sida.
function kontrollera(obj){
var svar = obj.svar.value;
var pattern = /^(([1-9]\d*)|(\d+[\.,]\d+))$/;
flag = pattern.test(svar);
if(flag){
return true;
}
else{
alert("Enter a number in the field");
document.fraga.svar.focus();
return false;
}
}
Jag tänkte att man kunde döpa alla formulär till namnen 1,2,3,4 osv (istället för svar) och sedan göra en loop som loopar igenom RegExpen för varje formulär. Är detta möjligt? Finns det kanske något bättre sätt?
Om du skall köra uttrycket för varje forumlärelement så behöver du ju inte döpa elementen till något speciellt. Ex:
function kontrollera(obj){
var pattern = /^(([1-9]\d*)|(\d+[\.,]\d+))$/;
for (var i=0; i<obj.elements.length;i++)
{
if (!pattern.test(svar))
{
alert("Enter a number in the field");
obj.elements[i].focus();
return false;
}
}
return true;
}
Om du inte vill köra uttrycket på varje formulärelement så kanske du kan sätta ett egendefinierat attribut på dom som skall köras. (OBS, fungerar endast i IE (kanske NS6???)) . Ex:
<input type="text" name="namn" datatype="number">
och i koden:
if (obj.elements[i].[b]datatype[/b] == "number")
{
if (!pattern.test(svar))
...