Avatar billede bigo Nybegynder
01. april 2003 - 10:09 Der er 13 kommentarer og
1 løsning

check om alle -navngivne- felter er udfyldt

Hejsa.

i en form er der bl.a. to felter som skal være udfyldt. hvordan kan jeg sørge for at felterne er udfyldte hvis jeg sender antallet af linier med til funtionen.

kode:php:
<input type=text name=ipfra[$x] value='$ipfra[$x]' onblur='ValiderIPadresse(this)'>

tænkt kode:java script:

function CheckIpFelter(number)
{
  x=document.aclchangeform;
  for (nbr = 0; nbr < number; nbr++)
  {
    ipfra=x.elements["ipfra"];
    iptil=x.elements["iptil"];
    alert (ipfra);
    alert (iptil);
  }
  return (false);
}
og her får jeg ikke engang værdierne..

kort fortalt vil jeg gerne have at funktionen løber alle felter som hedder ipfra og iptil igennem og kontrollerer om de er udfyldt. hvis man kunne focusere på feltet hvor den er gal ville det være et plus - men ikke et krav.

anyone
Avatar billede ocp Nybegynder
01. april 2003 - 10:19 #1
Noget i denne stil?

function CheckIpFelter()
{
  var x=document.aclchangeform;

  var ctls_ipfra = x.getElementByName("ipfra");
  var ctls_iptil = x.getElementByName("iptil");
  for(var t=0; t<ctls_ipfra.length; t++)
  {
    if( ctls_ipfra[t].value != "" )
    {
        alert("Det markerede felt er ikke udfyldt");
        ctls_ipfra[t].focus();
        return;
    };
  }
 
  for(var t=0; t<ctls_iptil.length; t++)
  {
    if( ctls_iptil[t].value != "" )
    {
        alert("Det markerede felt er ikke udfyldt");
        ctls_iptil[t].focus();
        return;
    };
  }

  return (false);
}
Avatar billede bigo Nybegynder
01. april 2003 - 10:39 #2
hmm.. den kommer ikke ud med nogen advarsel..

btw: skal det ikke være
if( ctls_iptil[t].value == "" )
Avatar billede ocp Nybegynder
01. april 2003 - 10:44 #3
Nå jo... ;)
Avatar billede bigo Nybegynder
01. april 2003 - 10:47 #4
hmm.. hvis nu jeg siger at mit inputfelt viser name=ipfra[0] vil den så ikke skulle finde noget ala

var ctls_ipfra = x.getElementByName("ipfra[y]");

hvor y er nummeret i rækkefølgen?

selv hvis jeg sætter en alert ind lige efter de to var
f.eks.

alert (ctls_ipfra);

sker der ikke noget.
Avatar billede bigo Nybegynder
01. april 2003 - 10:51 #5
flytter jeg alerten op ovenover

var ctls_ipfra = x.getElementByName("ipfra[y]");

så alerter den. Måske! er der en fejl i var linien..
Avatar billede ocp Nybegynder
01. april 2003 - 10:55 #6
Mig og mine dårlige vaner. Jeg glemte == i stedet for = :

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>

<form name=aclchangeform>
<input name=ipfra value="">
<input name=iptil value="">

<input name=ipfra value="">
<input name=iptil value="">

</form>
</BODY>
</HTML>
<script lang=js>
function CheckIpFelter()
{
  var x = document;

  var ctls_ipfra = x.getElementsByName("ipfra");
  var ctls_iptil = x.getElementsByName("iptil");

  for(var t=0; t<ctls_ipfra.length; t++)
  {
    if( ctls_ipfra[t].value == "" )
    {
        alert("Det markerede felt er ikke udfyldt");
        ctls_ipfra[t].focus();
        return;
    };
  }
 
  for(var t=0; t<ctls_iptil.length; t++)
  {
    if( ctls_iptil[t].value == "" )
    {
        alert("Det markerede felt er ikke udfyldt");
        ctls_iptil[t].focus();
        return;
    };
  }

  return (false);
}

CheckIpFelter();

</script>
Avatar billede ocp Nybegynder
01. april 2003 - 10:56 #7
Hvis det er meget vigtigt for dig at det kun er input-felterne i formen der bliver behandlet må du lige sige til.
Avatar billede ocp Nybegynder
01. april 2003 - 10:58 #8
Øh - glem min kommentar med dårlige vaner. Ikke desto mindre virker det nye eksempel i min browser.
Avatar billede bigo Nybegynder
01. april 2003 - 11:04 #9
men hvis der er noget der ligner

<input name=ipfra[0] value="">
<input name=iptil[0] value="">

<input name=ipfra[1] value="">
<input name=iptil[1] value="">

så vil den ikke..

er jeg irriterende nu ;-)
Avatar billede bigo Nybegynder
01. april 2003 - 11:11 #10
jeg har leget lidt med det..



function CheckIpFelter(number)
{
  var x = document;
  for (nbr=0; nbr<number;nbr++)
  {
    var ctls_ipfra = x.getElementsByName("ipfra\[nbr\]");
    var ctls_iptil = x.getElementsByName("iptil\[nbr\]");
alert (ctls_ipfra.value);
    for(var t=0; t<ctls_ipfra.length; t++)
    {
      if( ctls_ipfra[t].value == "" )
      {
          alert("Det markerede felt er ikke udfyldt");
          ctls_ipfra[t].focus();
          return;
      };
    }

    for(var t=0; t<ctls_iptil.length; t++)
    {
      if( ctls_iptil[t].value == "" )
      {
          alert("Det markerede felt er ikke udfyldt");
          ctls_iptil[t].focus();
          return;
      };
    }
  }
  return (false);
}

og her angiver den undefined i en alertbox nu (alert (ctls_ipfra.value);) og det har den ikke gjort før.

number er antallet af linier jeg har i formen pt.
Avatar billede bigo Nybegynder
01. april 2003 - 11:13 #11
hvis jeg tager dit eksempel virker det også i min browser. men det er med ipfra og iptil.. ikke ipfra[0] og iptil[0]

og det er der mit problem ligger. øv.
Avatar billede ocp Nybegynder
01. april 2003 - 11:14 #12
Ja ;) men jeg svarer alligevel:

Kan dette bruges?

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>

<form name=aclchangeform>
<input name=ipfra value="">
<input name=iptil value="">

<input name=ipfra value="">
<input name=iptil value="">

</form>
</BODY>
</HTML>
<script lang=js>
function CheckIpFelter()
{
  var x = document;

  var ctls = x.getElementsByTagName("INPUT");

  for(var t=0; t<ctls.length; t++)
  {
    if( ctls[t].name == "ipfra" || ctls[t].name == "iptil" )
    {
        if( ctls[t].value == "" )
        {
            alert("Det markerede felt er ikke udfyldt");
            ctls[t].focus();
            return;
        };
    };
  }

  return (false);
}

CheckIpFelter();
</script>
Avatar billede ocp Nybegynder
01. april 2003 - 11:18 #13
NUUUU er den der:

function CheckIpFelter()
{
  var x = document;

  var ctls = x.getElementsByTagName("INPUT");
 
  for(var t=0; t<ctls.length; t++)
  {
    if( ctls[t].name.substring(0,5) == "ipfra" || ctls[t].name.substring(0,5) == "iptil" )
    {
        if( ctls[t].value == "" )
        {
            alert("Det markerede felt er ikke udfyldt");
            ctls[t].focus();
            return;
        };
    };
  }

  return (false);
}
Avatar billede bigo Nybegynder
01. april 2003 - 11:20 #14
hvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaad du er en helt... her en hund
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