webForumDet fria alternativet
Logga in / Bli medlem

Loopa runt RegExp...

JavaScript

3 svar · 218 visningar · startad av Harback

Medlem sedan juni 2001206 inlägg
Frågan#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.

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

Medlem sedan juni 2001206 inlägg
#4

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

[Redigerat av Harback den 04 nov 2001]

259 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)