Avatar billede senj Nybegynder
08. august 2001 - 10:33 Der er 5 kommentarer og
1 løsning

Opfat String som objekt!?

Lidt kode:

<html>
<head>
    <title>Untitled</title>
</head>

<body>

<script language=\"JavaScript\">

function validate(formfields)
{
alert(\"valider \" +formfields);
splitname = formfields.split(\",\");
var docfirst = \"document.form.\"
var container = \"\";
var i;

    for(i = 0; i < splitname.length; i++)
    {
        container = docfirst+splitname[i];
        alert(container);
    }

    for(i = 0; i < splitname.length; i++)
    {
        if(eval(splitname[i].value == \"\"))
        { 
            alert(\"Feltet skal være udfyldt\");
            splitname[i].value = \"Tis\";
            return false;
        }
    }
}
</script>

<form name = \"form\">
<input type = \"text\" name = \"f1\" val = \"comment\" size = \"9\"><br>
<input type = \"text\" name = \"f2\" val = \"comment\" size = \"9\"><br>
<input type = \"text\" name = \"f3\" val = \"comment\" size = \"9\"><br>
<input type = \"text\" name = \"f4\" val = \"comment\" size = \"9\"><br>
<input type = \"text\" name = \"f5\" val = \"comment\" size = \"9\"><br>
<input type = \"text\" name = \"f6\" val = \"comment\" size = \"9\"><br>
<input type = \"button\" value = \"Validate\" onClick = java script:validate(\"f1,f2,f3\");>
</form>

</body>
</html>

Hvordan får jeg lavet strengene om til objekter så den sidste forløkke opfatter arrayelementerne som objekter af document.x.x.x??
Avatar billede tknudsen Nybegynder
08. august 2001 - 10:39 #1
du er sådan set selv lidt inde på det...

du kan lave en streng indeholdende objektets navn - feks \"f1\". Denne stren kan du putte over i en variabel med funktionen eval. Da variabler i javascript er typeløse finder den (eval()) selv ud af hvilken type f1 er.

En anden måde at gre det på er at tilgå formens elemnts array:

document.forms[\'form\'].element[\'f1\'].value = \'Tis\';


var curForm = document.forms[\'form\'];

for(i=0;i<curForm.elements.length;i++)
  if(curForm.elements[i].type==\'text\')
    curForm.elements[i].value = \'Tis\';

Avatar billede senj Nybegynder
08. august 2001 - 10:55 #2
Kigger lige på det! yn moment!
Avatar billede tknudsen Nybegynder
08. august 2001 - 10:59 #3
hmm - jeg lavede en kommentar til ovenstående, men den kom åbenbart ikke med !?!?
Avatar billede tknudsen Nybegynder
08. august 2001 - 10:59 #4
så hvis du vil bruge din egen metode mener jeg at du kan gøre følgende:

function validate(formfields)
{

var splitname = formfields.split(\",\");
var docfirst = \"document.form.\"
var objText;
var i;

  for(i = 0; i < splitname.length; i++)
    {
        objText = eval(docfirst+splitname[i]);

        if(objText.value == \"\")
        { 
            alert(\"Feltet skal være udfyldt\");
            objText.value = \"Tis\";
            return false;
        }
    }
}
Avatar billede tknudsen Nybegynder
08. august 2001 - 11:04 #5
what do you know... der kom den jo :-)
Avatar billede senj Nybegynder
08. august 2001 - 11:07 #6
Det var alt der skulle til!

<script language=\"JavaScript\">

function validate(formfields)
{
alert(\"valider \" +formfields);
splitname = formfields.split(\",\");
var docfirst = \"document.form.\";
var docsecond = \"form\";
var container = \"\";
var i;

    for(i = 0; i < splitname.length; i++)
    {
        if(document.forms[docsecond].elements[splitname[i]].value == \"\")
        {
        alert(\"Feltet skal være udfyldt\");
        document.forms[docsecond].elements[splitname[i]].focus();
        return false;
        }
    }
}
</script>

Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester