webForumDet fria alternativet

Validering - inte bara mellanslag ?

JavaScript

9 svar · 220 visningar · startad av Pellefant

Medlem sedan maj 20023 372 inlägg
Frågan#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;};
                      
			

	}
                       }
Medlem 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)">

:)

Medlem 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.

Medlem sedan dec. 20025 483 inlägg
#4

Hur ser din formulärkod ut?

:)

Medlem 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>
Medlem 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;
	}
};

:)

Medlem 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>
Medlem 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...

Medlem 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!!!

:)

Medlem sedan dec. 20025 483 inlägg
#10

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

:)

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)