webForumDet fria alternativet

Loopa runt RegExp...

3 svar · 216 visningar · startad av Harback

HarbackMedlem sedan juni 2001206 inlägg
#1

Hejsan.

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?

Vore väldigt tacksam för svar.

------------------
mvh
Harback

tohaMedlem sedan dec. 1999707 inlägg
#2

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))
  ...

------------------
/ Torbjörn Hansson, webbutvecklare,
Density

HarbackMedlem sedan juni 2001206 inlägg
#3

Får det inte att fungera. Japp, jag ska köra testen på alla formulär på sidan.

Det är inte detta det är fel på?

if (!pattern.test(svar))

Då är ju formulärnamnet "svar" fortfarande med eller? Vad ska man ändra för att det ska fungera?

------------------
mvh
Harback

HarbackMedlem sedan juni 2001206 inlägg
#4

Löste det...submitknappen räknas som ett "element" också...

[Redigerat av Harback den 04 nov 2001]

125 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)