24. marts 2003 - 11:10Der er
31 kommentarer og 2 løsninger
kan man tjekke syntaxen ved hjælp af VBscript??
jeg vil gerne tjekke om mine brugere skriver i et felt med en speciel syntax. og jeg kan ikke bruge Javascript, da mange af dem sidder med IE 5.0 :-( Derfor vil jeg høre om nogen kender et vbscript der tjekke om syntax'en er : 1-3 bogstaver og så 2-6 tal (F.eks km50001 eller R4000)
de bruger IE 5.0 (opg kan ikke opdatere, da de bruger Win95 eller WinNT) Jeg har en funktion der tjekker om feltet har en speciel syntax i Javascript. Denne fungerer ikke på de PC'ere der bruger IE 5.0 :-(
<script type='text/javascript'> var regEkspress = /^(-|[a-z\-A-Z]{1,3}\d+)$/; function feltTest( feltElem ) { if ( regEkspress.test( feltElem.value ) ) { return true; // det indtastede er OK og må sendes } else { alert( "Item nr. skal være bogstaver og så tal F.ex. f324 ellers indsæt da blot en bindestreg, der skal ikke være mellemrum mellem bogstaver og tal. det skal være 1-3 bogstaver, og så 2-6 tal" ); return false; // det indtastede må ikke sendes } } </script>
<form name="navn" onsubmit="return feltTest(this.kode_nr);" ACTION="indsæt_i_database.asp" METHOD=post autocomplete="off"> og så har jeg selvfølgelig et felt der hedder kode_nr. det virker ikke i IE 5.0 ihvertfald ikke på de pc'ere jeg har prøvet :-(
er der nogen der ved om man godt kan tjekke syntaxen i Vbscript?? og i så fald hvordan?? Det virker ikke på de computere som kører IE 5.0. Og jeg må ikke installere noget nyt på dem (IT-politik). så derfor må jeg prøve at få det til at virke på anden vis... desværre. Så hvis der er nogen der ved om det kan lade sig gøre i Vbscript, så ville jeg blive meget taknemmelig
>medions : du skriver at det skulle virke i IE 5.0 Kan det være at jeg skal specificere hvilken Javascript version den skal opfatte det som? Og at det er det som er problemet?? Hvis det ikke er specificeret vil den vel altid bruge seneste version, eller hvad?
kledal> Nej, det skulle ikke være problemet... -prøv at test det på en anden computer! -for det overtående skulle gerne efter min mening være kompatibel med IE 5.0!
<script type="text/javascript"> var regEkspress = /^(-|[a-z\-A-Z]{1,3}\d+)$/; function feltTest( feltElem ) { if ( regEkspress.test( feltElem.value ) ) { return true; // det indtastede er OK og må sendes } else { alert( "Item nr. skal være bogstaver og så tal F.ex. f324 ellers indsæt da blot en bindestreg, der skal ikke være mellemrum mellem bogstaver og tal. det skal være 1-3 bogstaver, og så 2-6 tal" ); return false; // det indtastede må ikke sendes } } </script>
function feltTest( feltElem ) { if ( regEkspress.test( feltElem.kode_nr.value ) ) { return true; // det indtastede er OK og må sendes } else { alert( "Item nr. skal være bogstaver og så tal F.ex. f324 ellers indsæt da blot en bindestreg, der skal ikke være mellemrum mellem bogstaver og tal. det skal være 1-3 bogstaver, og så 2-6 tal" ); return false; // det indtastede må ikke sendes } } </script>
ja, jeg har nu også prøvet at ligge det som onclick på submitknappen, og det virker heller ikke. Men det er som om at IE 5.0 ikke læser javascriptet, for jeg får ingen fejlmeldinger. uanset om jeg laver fejl i scriptet så sker der ingenting. Kan man slå et eller andet fra i browseren?? så at den ikke læser javascript??
jeg ved ikke hvordan jeg skal skrive det i VBsyntax! derfor startede jeg dette her indlæg i vbscript :-) så hvis du kunne lave det, eller blot fortælle hvordan det skal gøres ville jeg blive en glad mand :-)
<script language="VBScript"> Sub send_OnClick() Set objRe = New RegExp objRe.Global = True objRe.Pattern = "^([a-zA-Z]{1,3})([0-9]{2,6}$)" strKode_Nr = document.navn.kode_nr.value
If objRe.Test(strKode_Nr) Then document.navn.submit Else MsgBox("Item nr. skal være bogstaver og så tal F.ex. f324 ellers indsæt da blot en bindestreg, der skal ikke være mellemrum mellem bogstaver og tal. det skal være 1-3 bogstaver, og så 2-6 tal") End If End Sub </script> </head> <body> <form name="navn" ACTION="test1.htm?test" METHOD=post autocomplete="off"> <input type="text" name="kode_nr"> <input type="button" name="send" value="send"> </form> </body> </html>
Har testet med: "a12", "bb123", "ccc1234", "dddd12345678"
nu får alle fejlmeddelsen, men formen bliver submitet uanset hvad! jeg plejer at bruge history.back(-1) men det virker jo ikke når vbscriptet er på samme side :-(
ups jeg glemte at sige at det også skal være muligt blot at skrive en bindestreg :-( jeg prøvede som i javascript at indsætte -| sådan her : "^(-|[a-zA-Z]{1,3})([0-9]{2,6}$)" men det virker ikke. hvordan kan man gøre det?
>rune vbscriptet virker ikke efter hensigten, alrtboksen kommer op, men man bliver uanset hvad sendt videre til næste side, hvis man har indtastet forkert, så skal man jo netop ikke redirectes :-(
giver medions halv point, da jeg har fået svaret på noget af det :-) tak for hjælpen
Synes godt om
Ny brugerNybegynder
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.