Avatar billede leif Seniormester
19. maj 2009 - 10:52 Der er 12 kommentarer og
1 løsning

Opdater felt og valider

Hej,

Jeg har et javascript som opdaterer 2 oplysninger på skærmen for mig:
document.getElementById("bynavn").innerHTML=xmlHttp.responseText;
document.getElementById("bynavn1").value = xmlHttp.responseText;


bynavn er et span så det vises og bynavn1 er et hidden felt.


Jeg har så at jeg gerne vil validere på om der er opdateret noget i bynavn1 før jeg sender formen, men hvis jeg blot laver:
  if(bynavn1 == "") {
  alert("Fejl: " + bynavn1);
  return false;
  }

Så går det fint mens der ikke er skrevet noget i mit postnummer felt, men skriver jeg blot 1 så er bynavn1 åbent opdateret med et eller andet fordi den fejler ikke.

Jeg har så forsøgt med:
if(bynavn1 != "") {
  alert("Fejl: " + bynavn1);
  return false;
  }

Og der kan jeg se at den laver 2 linier i alert boksen så der er åbenbart opdateret med et \n eller lign.

Hvordan kan jeg løse det så at den validerer korrekt ?

Er det sort snak ?

På forhånd tak


/Leif
Avatar billede majbom Novice
19. maj 2009 - 12:00 #1
link?
Avatar billede leif Seniormester
19. maj 2009 - 12:04 #2
Link til hvad ? Mine test sider ? Så skal jeg lige havde fjernet oplysninger fra systemet da der desværre lige nu ligger informationer som ikke må offentliggøres endnu samt have lagt dem ud på en offentlig webserver.
Avatar billede tjens Nybegynder
19. maj 2009 - 12:04 #3
Jeg ville validere selve responseText, og så kun fylde den i felterne hvis det er et brugbart svar.
Avatar billede majbom Novice
19. maj 2009 - 12:30 #4
ja, det ville være rart med et link til siden, da det er lidt svært at vurdere, ud fra din beskrivelse, hvad der går galt.

desuden bør du ikke bruge innrhtml, da det aldrig har været en del af nogen standard, og på ingen måde er valid kode...
Avatar billede roenving Novice
19. maj 2009 - 13:20 #5
Hvad er bynavn1 i din kode ?-)

-- for at virke efter hensigten skal det selvfølgelig være form.felt.value ...
Avatar billede leif Seniormester
19. maj 2009 - 13:36 #6
http://ljnet.dk/exp/875538/

Det er uden validering på bynavn1 men som I vil kunne se hvis i submitter så sender den fint bynavn1 videre i min form submit, men jeg skal have at hvis den er tom så sender den ikke noget som helst, så skal javascriptet afbryde og melde fejl.
Avatar billede leif Seniormester
19. maj 2009 - 13:40 #7
Jeg tilføjede:
  if(bynavn1 == "") {
  alert("Fejl Bynavn: " + bynavn1);
  return false;
  }


til javascriptet med uden held
Avatar billede majbom Novice
19. maj 2009 - 13:54 #8
må vi se koden i getpostnr.js?

den må jo returnere noget uanset hvad der er tastet i postnr
Avatar billede tjens Nybegynder
19. maj 2009 - 14:05 #9
Tror du ikke bare at getpostnr.php skal renses lidt, så den ikke sender det linieskift?

Alternativt kan du jo lave en Regex test, at bynavn1 skal indeholde noget fra alfabetet ;-)
Avatar billede leif Seniormester
19. maj 2009 - 14:19 #10
Avatar billede tjens Nybegynder
19. maj 2009 - 14:24 #11
Eller følge mit førte råd og checke svaret inden du bruger det:

function showUser(str)
{
document.getElementById("bynavn").innerHTML = "";
document.getElementById("bynavn1").value = "";
if (str.length != 4)
  return;
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="include/php/getpostnr.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
  {
  if (xmlHttp.responseText.length > 2) {
    document.getElementById("bynavn").innerHTML=xmlHttp.responseText;
    document.getElementById("bynavn1").value = xmlHttp.responseText;
    }
  }
}

Du kan sikkert selv finde på en bedre test en lige længde større end 2.
Avatar billede leif Seniormester
19. maj 2009 - 15:47 #12
#11 -> Ser ud til at virke het som jeg ønsker. Tak. Smid et svar
Avatar billede tjens Nybegynder
19. maj 2009 - 15:52 #13
Roger that
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