/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
Problem med validering af <textarea>
Fra : Jette


Dato : 13-01-02 03:35

Jeg har problemer med at få validering af et <textarea> -felt til at virke.
Jeg får denne fejl:

Line: 37
Char: 4
Error: '1' is null or not an object
Code: 0

Håber nogen kan hjælpe .....

Mit dokument ser således ud :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>[Ingen titel]</TITLE>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
</HEAD>
<BODY>

<form action="jscriptTest.html" name="testform" method="post"
onSubmit="return check_all(this.form)">
<textarea name="mintekst" rows="50" cols="50"></textarea>
<input type="submit" value="OK">
</form>

<SCRIPT language=JavaScript1.2>

function check_category(f) {
var x = f.value;
trim(x);
document.write (x);
return false;
}

function check_all(f) {
if (!check_category(document.testform.mintekst)) return false;
return true;
}

function ltrim( s ) {
var lpatt = new RegExp( "^ *(.*)$" );
var parse = s.match( lpatt );
return parse[1];
}

function rtrim( s ) {
var rpatt = new RegExp( "^(.*[^ ]) *$" );
var parse = s.match( rpatt );
return parse[1];
}

function trim (string) {
trimboth = ltrim( rtrim( string ) );
return trimboth;
}
</script>

</BODY>
</HTML>


Mvh. Jette



 
 
Stig Nygaard (13-01-2002)
Kommentar
Fra : Stig Nygaard


Dato : 13-01-02 13:55

Hej Jette


Jette wrote:

> Jeg har problemer med at få validering af et <textarea> -felt til at virke.


Din onSubmit ser lidt underlig ud:

> <form action="jscriptTest.html" name="testform" method="post"
> onSubmit="return check_all(this.form)">


Mon ikke det skal være

onSubmit="return check_all(this.mintekst)"

Det fjerner fejlen hos mig, selvom jeg ikke kan se forbindelsen til
linie 37. Faktisk ser det slet ikke ud til at du bruger parameteren til
noget ?


Mvh. Stig
stig@rockland.dk
* Bedre (D)HTML ? --> http://www.rockland.dk/stig/upghtml.html *


Jette (13-01-2002)
Kommentar
Fra : Jette


Dato : 13-01-02 22:23

"Stig Nygaard" skrev:
> Din onSubmit ser lidt underlig ud:
>
> > <form action="jscriptTest.html" name="testform" method="post"
> > onSubmit="return check_all(this.form)">
>
> Mon ikke det skal være
>
> onSubmit="return check_all(this.mintekst)"
>
> Det fjerner fejlen hos mig, selvom jeg ikke kan se forbindelsen til
> linie 37. Faktisk ser det slet ikke ud til at du bruger parameteren til
> noget ?
>

Fra linie 23 til 26 har jeg denne funktion:

function check_all(f) {
if (!check_category(document.testform.mintekst)) return false;
return true;
}

Jeg ved godt det ser ud som en omvej, men på den oprindelige side er der
flere felter der skal tjekkes. Derfor skriver jeg onSubmit="return
check_all(this.form) i <form> -linien og denne funktion kalder så alle de
andre funktioner der tjekker alle felter.

Jeg forstår ikke fejlen, og den fremkommer kun ved <textarea>-felter. Kan
det være fordi at trim-funktionerne ikke kan lide linieskift? Jeg har nemlig
ingen problemer med <input type=text"> -felter.

Det jeg skal tjekke er at brugeren rent faktisk har skrev noget i
<textarea> -feltet. Men hvis jeg bare tjekker at længden af strengen ikke er
0, kan brugeren jo i princippet bare have trykket et par gange på
mellemrumstasten, og det er det jeg gerne vil undgå. Har du nogen
alternative forslag?

På forhånd tak

Mvh. Jette



Sports-MC / Claus Be~ (14-01-2002)
Kommentar
Fra : Sports-MC / Claus Be~


Dato : 14-01-02 03:40

Jette wrote:

> Jeg forstår ikke fejlen, og den fremkommer kun ved <textarea>-felter. Kan
> det være fordi at trim-funktionerne ikke kan lide linieskift? Jeg har nemlig
> ingen problemer med <input type=text"> -felter.

Der burde ikke være problemer især da du kører med virtual liniedeling (er
default, alternativet er aktivt at sætte den til physical) og der vil således
ikke være nogle linedelingstegn i indholdet af dit textarea.

Jeg kører selv en validering der ser således ud på mine egne felter og det
virker fint:

<SCRIPT language="JavaScript">
function check_form(form_action)
{
df = document.frm_edit;
var ts = new String(df.frm_description.value);
ts = ts.replace(/( *)/, '');
if (ts.length == 0)
{ alert('Feltet "Beskrivelse" skal udfyldes!');
df.frm_description.focus();
return false;
}
df.frm_action.value=form_action;
df.method="POST";
df.action="<?php echo Ref($action); ?>";
}
</SCRIPT>

<FORM METHOD=post ONSUBMIT="" NAME=frm_edit>
<INPUT TYPE=hidden NAME=frm_action VALUE="">
<TEXTAREA NAME=frm_description COLS=48 ROWS=3 WRAP=virtual
CLASS=frm></TEXTAREA>
<INPUT TYPE=submit NAME=submitfrm VALUE="Save" CLASS=frm
ONCLICK="Javascript:return check_form('save');">
</FORM>

Det er hastigt klippet ud af en større sammenhæng så hvis der er noget der
forvirrer må du spørge - men det er essensen af valideringen og den er i helt
sikkert ok!

Venlig hilsen,
Claus



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste