Index · · Forum (søg) · Blogs · Artikler · IRC · Billeder · Video · HWP · Spiki Wed, 5 Feb 2025 18:57 
 Seneste indlæg: [Andet] Ny StationĂŠr - [16c]UdgaardsLoke (d. 27 April 2023)
Reklamer
Java Validation
Forum: Andet
#1 - Jon Kanon - Thursday 17-09-2009 kl. 11:42
Jon KanonHey.. Er der nogen af jer der kan hjĂŠlpe med noget java validation. Arbejder ikke med java normalt..

FÞrst og fremmest kan jeg ikke fÄ isNaN til at virke som jeg vil, se her:
function validate_form()
{
// validates that the entry is formatted as an e-mail address





var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var address = document.buoy.emailAddr.value;


errmsg="";

if (document.buoy.emailAddr.value=="")
{alert("Email Field is Blank \n\nPlease insert your email");
return false;}
if(reg.test(address) == false) {
alert("Please enter a valid email");
return false;}

for(var i=1;i<=number;i++)
{
var lat="document.buoy.latd"+i+".value";
var lon="document.buoy.lond"+i+".value";

//Check the value numbers
if (eval(lat)lat2||eval(lat)=="")
{errmsg +="LATITUDE FOR BUOY "+i+": Choose a value between "+lat1+"N and "+lat2+"N\n";}
if (isNaN(lat))
{errmsg +="LATITUDE FOR BUOY "+i+": Have to be a number\n" ;}

if (eval(lon)lon2||eval(lon)=="")
{errmsg +="LONGITUDE FOR BUOY "+i+": Choose a value between "+-1*lon1+"W and "+lon2+"E\n";}
//if (isNaN("buoy.lond"+i+".value"))
// {errmsg +="LONGITUDE FOR BUOY "+i+": Have to be a number\n" ;}
}



if (errmsg=="")
{return true;}
else{
alert(" Following Error Have Occured:\n\n"+errmsg);
return false;}
}


Hvis der er en der er super god(Allan??) til java, og det kun tager 5 min, bliver jeg bare sÄ glad, hvis i/du kunne hjÊlpe:)
#2 - Jon Kanon - Thursday 17-09-2009 kl. 11:47
Jon Kanon.. edit .. edit ..
ĂŠndret: Thursday, September 17, 2009 kl. 15:48
#3 - Riley - Thursday 17-09-2009 kl. 12:17
Rileyhttp://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_isnan

kig der, har lidt svĂŠrt ved at afgĂžre om din java kode gĂžr det rigtige, men det ser pĂŠnt korrekt ud!
#4 - Jon Kanon - Thursday 17-09-2009 kl. 12:43
Jon KanonWell den siger at det ikke er et nummer lige meget hvad. SÄ jeg tÊnkte at problemmet muligvis lÄ i variablen jeg henter fra min form, altsÄ:
var lat="document.buoy.latd"+i+".value";

er der en mÄde at trimme denne pÄ og hvorfor mon den fÞrste eval virker nÄ den anden ikke gÞr :o Det er jo ogsÄ et nummer den bruger..

Vil prÞve at smide min kode ind i linket senere i aften, er pÄ vej ud af dÞren:) Men den virker jo ikke pÄ hjemmesiden, sÄ ved ikke hvorfor det skulle virke der??
#5 - Jon Kanon - Friday 18-09-2009 kl. 04:51
Jon KanonlÞste problemmet ved at definere en array fÞrst sÄledes:
var lat_ar=new Array("",buoy.latd1.value,buoy.latd2.value,buoy.latd3.value,buoy.latd4.value,buoy.latd5.value,buoy.latd6.value,buoy.latd7.value,buoy.latd8.value,buoy.latd9.value,buoy.latd10.value);
og derefter loope over
if (isNaN(lat_ar[i]))
{errmsg +="LATITUDE FOR BUOY "+i+": Have to be a number\n" ;}

Det vil vÊre et stÞrre problem hvis man f.eks. har 1000 indicer man skal igennem, men her funger det fint, og har ikke tÊnkt mig at bruge mere tid pÄ det:)

edit: det sidste jeg skrev med 1000 indicer er selvfĂžlgelig noget vrĂžvl, da man ligesom i alle andre sprog, helt sikkert kan definere en array inde i en lĂžkke. Min pointe var bare at jeg ikke vidste how:)
ĂŠndret: Sunday, September 20, 2009 kl. 07:44
#6 - Kare1234 - Friday 18-09-2009 kl. 05:46
Kare1234Nice. Jeg fatter absolut minus af Java, men mÄske skulle du overveje at skralle ting af funktionen indtil du finder ud af, hvad der er galt. Btw: hvad med syntax highlight pÄ spo?
#7 - Jon Kanon - Friday 18-09-2009 kl. 07:03
Jon Kanonjep, jeg udkommenteret tingene, sÄ jeg fandt ud af at det var "" der var problemmet. En lille rettelse er at man bliver nÞd til at flytte .value i array'en ind under lykken, ellers leder den efter en vÊrdi, som muligvis ikke eksistere (for i<10)..
#8 - Kare1234 - Friday 18-09-2009 kl. 08:22
Kare1234Ha! Jeg plejer bare at bruge try-except. SĂ„ crasher koden aldrig!
#9 - Jon Kanon - Friday 18-09-2009 kl. 09:39
Jon KanonJep, men er det ikke lidt overkill, i forhold til et lille program:)
#10 - Kare1234 - Friday 18-09-2009 kl. 10:00
Kare1234Det er udemÊrket til at teste, fordi man kan fÄ fejlene smidt i hovedet uden at programmet stopper fordi man (f.eks.) har en syntaxfejl. Jeg ved godt, at Allan mener at det er lidt til "the dark side" men wtf.
#11 - Riley - Friday 18-09-2009 kl. 11:23
Rileynono try catch er fint hvis du sÄ bare hÄndterer fejlene... bruger for det meste selv alerts til at tracke hvornÄr fejlen sker, men det er mere fordi js er det argeste lort at debugge
#12 - Jon Kanon - Friday 18-09-2009 kl. 14:24
Jon Kanon#11 Jaah det har jeg fundet ud af:)
#13 - brian - Sunday 20-09-2009 kl. 05:45
brian@6: stensikkert syntaxhighlighting pÄ 5p0. Men mÄske vigtigere; code tag sÄ begyndende whitespace ikke gÄr tabt..

Ellers ret irriterende kode at lÊse pÄ spo. Jeg ved det er en indivudiel ting, men mÄ jeg evt foreslÄ at du sÊtter dine afsluttende '}' pÄ en efterfÞlgende linie, i samme indrykningsniveau som blokken du afslutter, medmindre det er en blok pÄ en linie?

Din isNaN returnerer sandt fordi du spÞrger den om en streng er et tal. Jeg vil skyde pÄ at /if (isNaN(lat))/if (isNaN(eval(lat)))/ vil kunne lÞse dit problem?
Jeg er nysgerrig; hvad gĂžr fremhĂŠvede?
if (eval(lat)lat2||eval(lat)=="")
#14 - Jon Kanon - Sunday 20-09-2009 kl. 07:30
Jon KanonForstÄr din frustration mht {} og jeg plejer at fÞlge nogle regler for mig selv der. hvis det er en if eller for funktion, plejer jeg normalt at holde dem pÄ en linie, med mindre det kan stÄ pÄ en linie, with wrap.

Well koden kom til at se sÄledes ud og det virker:):

var lat_ar=new Array("",buoy.latd1, buoy.latd2 ,buoy.latd3, buoy.latd4 ,buoy.latd5, buoy.latd6,buoy.latd7, buoy.latd8, buoy.latd9, buoy.latd10);
for(var i=1;i<=number;i++)
{
if (isNaN(lat_ar[i].value)){}
}

ForstÄr din forvirring og ved ikke hvorfor det er skrevet sÄdan i spo, men den rigtige syntax er:
if (eval(lat)>lat1||eval(lat)<lat2||eval(lat)=="")
ĂŠndret: Sunday, September 20, 2009 kl. 11:31
ĂŠndret: Sunday, September 20, 2009 kl. 11:37
ĂŠndret: Sunday, September 20, 2009 kl. 11:37
#15 - brian - Sunday 20-09-2009 kl. 07:48
brianNu ved jeg ikke hvor meget du har ĂŠndret i dit oprindelige kode, men bare lige for at klarificere hvad jeg mente med /noget/noget andet/;

NĂ„r du spĂžrger:
if (isNaN(lat))

er 'lat' en tekstreng og svaret derfor altid sandt - "bla bla 43" er ikke et tal. Hvis du evaluerede den ville du (mÄske) fÄ et tal, fordi lat er en kommando du har opbygget:
if (isNaN(eval(lat)))

... eller sagt pÄ en anden mÄde /noget/noget andet/ betyder udskift noget med noget andet..
#16 - Jon Kanon - Monday 21-09-2009 kl. 04:07
Jon KanonAha Brian.. Nu fik jeg rent faktisk tjekket det igen og
if(isNaN(eval(lat))) virkede rent faktisk..

Jeg havde vist prĂžvet at skrive fĂžlgende

var lon=eval("document.buoy.lond"+i+".value");

og det virkede ikke.. Men jeg forstÄr det hele lidt bedre nu:)
#17 - Jon Kanon - Monday 21-09-2009 kl. 05:27
Jon KanonBrian (eller en anden), kan du sÄ gennemskue hvorfor dette ikke virker:
var db = "buoy.depth"+i+;

if (!eval(db)[0].checked && !eval(db)[1].checked)
{
errmsg +="error1\n";
}

som bruges til at checke om der er klikket pÄ en radiobutton med 2 felter og hvor jeg igen har en i-lÞkke rundt om. Har lÞst det pÄ en anden mÄde, men kunne da vÊre interessant at finde ud af:)
#18 - Jon Kanon - Monday 21-09-2009 kl. 06:11
Jon KanonUps: F5;)
ĂŠndret: Monday, September 21, 2009 kl. 10:11
Du skal vaere logget ind og godkendt for at kunne skrive en kommentar
Reklamer
   Time: 0.089628934860229 seconds Brugere - Ny blog - Ny artikel - changelog