webForumDet fria alternativet

Validering - inte bara mellanslag ?

9 svar · 220 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hej!

Jag har denna som fungerar bra, men hur kan man ändra så att den även kollar så att inte bara mellanslag tryckts in?

function tomtvalidation(entered, alertbox)
                       {
                        with (entered)
                       {
		         if (value==null || value=="" || value=='\n' )
                       {if (alertbox!="") {alert(alertbox);} return false;}
                       else {return true;}
                       }
                     } 

function formvalidation(thisform)
                       {
                       with (thisform)
                       {
                       
                     
					    if (tomtvalidation(title,"Enter title name please")==false)
                       {title.focus(); return false;};

						  if (tomtvalidation(writing,"Enter the artist name please")==false)
                       {artist.focus(); return false;};
                      
			

	}
                       }
Peter SMedlem sedan dec. 20025 483 inlägg
#2
<script type="text/javascript">
<!--

function formvalidation(o){
	var re=/^[\s]*$/;

	if(re.test(o.elements["title"].value)){
		alert("Enter title name please");
		return false;
	}
	if(re.test(o.elements["writing"].value)){
		alert("Enter the artist name please");
		return false;
	}
};

//-->
</script>

...

<form onsubmit="return formvalidation(this)">

:)

PellefantMedlem sedan maj 20023 372 inlägg
#3

Hej hopp! :)

Har denna nu

[kod]
<script type="text/javascript">
<!--

function formvalidation(o){
var re=/^[\s]*$/;

if(re.test(o.elements\["title"\].value)){
	alert("Enter title name please");
	return false;
}
if(re.test(o.elements\["artist"\].value)){
	alert("Enter the artist name please");
	return false;
}

};

//-->
</script>
[kod]

Den verkar släppa igenom mellanslag ändå, samt även om man trycker på submitknappen direkt.

Men om det finns något i ena fältet så kommer popupen fram och säger att det saknas text i det andra fältet.

Klurigt detta.

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Hur ser din formulärkod ut?

:)

PellefantMedlem sedan maj 20023 372 inlägg
#5

Den är lite lång, men här kommer den.

Förresten, med koden du skrev ovan, skulle jag lägga till den, jag ersatte den "över" den gamla koden, kanske var fel?

ser även att jag har fel namn, ska vara song, inte title.

Ska testa lite

<form  enctype="multipart/form-data" method="post" onsubmit="return formvalidation(this)" action="add-songrequest.php?vote=text">
 	    <table width="100%" cellpadding="0" cellspacing="2" border="0">

<tr>
<td class="middle">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Artist Name</font> 
            </td>
<td class="middle">
              <input type="text" name="artist" class="box" value="">
</td>
</tr>

<tr>
<td class="middle" width="100">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Song Title </font>
            </td>
<td class="middle" width="150">
              <input type="text" name="song" class="box" value="">
</td>
</tr>

<tr>
<td valign="top">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Reason </font>
            </td>
<td class="middle">
              <textarea class="box" name="reason"></textarea>&nbsp;&nbsp;&nbsp;<i>optional</i>
</td>
</tr>
<tr>
<td class="middle">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Your Name 
                </font>
            </td>
<td class="middle">
              <input type="text" name="author" class="box" value="">&nbsp;&nbsp;&nbsp;<i>optional</i>
</td>
</tr>
<tr>
<td class="middle">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Your Email</font> 
            </td>
<td class="middle">
              <input type="text" name="authoremail" class="box" value="">&nbsp;&nbsp;&nbsp;<i>optional</i>
</td>
</tr>
<tr>
<td class="middle">
              <p><i></i></p>
</td>
            <td class="middle"> 
              <p>
<input type="Submit" class="button" value="Send Request" class="submit" ></p>

	 </td>
</tr>
</table>
</form>
Peter SMedlem sedan dec. 20025 483 inlägg
#6

Du skall ersätta den gamla koden med denna ;) Precis som du skrev så skall det vara "song" istället för "title":

function formvalidation(o){
	var re=/^[\s]*$/;

	if(re.test(o.elements["artist"].value)){
		alert("Enter an artist name please");
		return false;
	}
	if(re.test(o.elements["song"].value)){
		alert("Enter a title please");
		return false;
	}
};

:)

PellefantMedlem sedan maj 20023 372 inlägg
#7

Då fungerar det bättre, om man fyller i ena fältet frågar den efter det andra.

Nu går det inte hellar att trycka på submit på en gång.

Dock så tar den mellanrum :(

"Hela" koden:

I HEAD taggen:

<script type="text/javascript">
<!--

function formvalidation(o){
	var re=/^[\s]*$/;

	if(re.test(o.elements["title"].value)){
		alert("Enter title name please");
		return false;
	}
	if(re.test(o.elements["artist"].value)){
		alert("Enter the artist name please");
		return false;
	}
};

//-->
</script>

I BODY taggen(korrigerad kod):

 <form  enctype="multipart/form-data" method="post" onsubmit="return formvalidation(this)" action="add-songrequest.php?vote=text">
 	    <table width="100%" cellpadding="0" cellspacing="2" border="0">

<tr>
<td class="middle">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Artist Name</font> 
            </td>
<td class="middle">
              <input type="text" name="artist" class="box" value="">
</td>
</tr>

<tr>
<td class="middle" width="100">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Song Title </font>
            </td>
<td class="middle" width="150">
              <input type="text" name="song" class="box" value="">
</td>
</tr>

<tr>
<td valign="top">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Reason </font>
            </td>
<td class="middle">
              <textarea class="box" name="reason"></textarea>&nbsp;&nbsp;&nbsp;<i>optional</i>
</td>
</tr>
<tr>
<td class="middle">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Your Name 
                </font>
            </td>
<td class="middle">
              <input type="text" name="author" class="box" value="">&nbsp;&nbsp;&nbsp;<i>optional</i>
</td>
</tr>
<tr>
<td class="middle">
              <p><font face="Arial, Helvetica, sans-serif" size="-1">Your Email</font> 
            </td>
<td class="middle">
              <input type="text" name="authoremail" class="box" value="">&nbsp;&nbsp;&nbsp;<i>optional</i>
</td>
</tr>
<tr>
<td class="middle">
              <p><i></i></p>
</td>
            <td class="middle"> 
              <p>
<input type="Submit" class="button" value="Send Request" class="submit" ></p>

	 </td>
</tr>
</table>
</form>
PellefantMedlem sedan maj 20023 372 inlägg
#8

Det verkar vara ngt knas med denna raden

<form method="post" onsubmit="return formvalidation(this)" action="add-songrequest.php?vote=text">

För: action="add-songrequest.php?vote=text">

skrivs ut på sidan

återkommer...

PellefantMedlem sedan maj 20023 372 inlägg
#9

Jag hade två likadana script i head från början.....och tog jag bara bort den ena så hjälpte det ju inte...

Nu fungerar det som det ska. Tack för hjälpen Peter S!!!

:)

Peter SMedlem sedan dec. 20025 483 inlägg
#10

Då kan jag radera detta inläggs innehåll :bire

:)

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)