webForumDet fria alternativet

Validering men utan Alert

8 svar · 565 visningar · startad av Cammis

CammisMedlem sedan juni 20095 inlägg
#1

Hej,
Jag har hämtat ett script härifrån, och jag ska ha en väldigt enkel validering av ett formulär. Men när man inte skrivit något i formulärfältet ska man skickas till en annan websida, som det är nu visas bara en Alert.
Går det att fixa?

<script type="text/javascript">
/* Detta script finns att hämta på http://www.jojoxx.net och
får användas fritt så länge som dessa rader står kvar. */

String.prototype.isValidEmail = function(){
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validateForm() {
if (document.f.regnr.value=="") {
alert("Du måste fylla i ett nr.");
return false;
} else {
return true;
}
}
</script>

voigtann1Medlem sedan juni 20018 810 inlägg
#2

Välkommen till wF
Det är väl bara att bya ut alert mot:

window.location('http://webforum.nu');

eller missförstå jag?

CammisMedlem sedan juni 20095 inlägg
#3

Funkar inte

Jag skickas ändå vidare till den web-adress som formuläret anger.
Mitt nya skript ser ut så här, är det något som jag förstått fel?

<script type="text/javascript">
/* Detta script finns att hämta på http://www.jojoxx.net och
får användas fritt så länge som dessa rader står kvar. */

String.prototype.isValidEmail = function(){
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validateForm() {
if (document.f.regnr.value=="") {
window.location('http://webforum.nu');
return false;
} else {
return true;
}
}
</script>

JojoxxMedlem sedan juni 20004 306 inlägg
#4

Exemplet använder inte funktionen för att kontrollera att epost-adressen ser rätt ut, kombinerar vi allting blir det så här:

<script type="text/javascript">
/* Detta script finns att hämta på [url]http://www.jojoxx.net[/url] och
får användas fritt så länge som dessa rader står kvar. */

String.prototype.isValidEmail = function(){
return !!this.match(/^([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})@([a-zA-Z0-9]{1}([a-zA-Z0-9\.\-\_]*)[a-zA-Z0-9]{1})\.([a-zA-Z]{2,4})$/)
}
function validateForm(obj) {
if (!obj.email.value.isValidEmail()) {
window.location.href='http://webforum.nu';
return false;
} else {
return true;
}
}
</script> 
<form action="http://www.google.com" onsubmit="return validateForm(this);">
E-post: <input type="text" name="email">
<input type="submit" value="Skicka"
</form>
CammisMedlem sedan juni 20095 inlägg
#5

Ok, tack för hjälpen men det funkar inte ändå som jag vill. Man kommer inte till adressen i skripet utan till adressen som visas i formuläret men när man inte skrivit något i formuläret så hamnar man på en blank sida för den adressen kräver att man skrivit in något.

Detta med e-post valideringen använder jag inte, den raden hade jag bara missat att ta bort...

Problemet är följande:
Det finns ett formulär med bara en enda ruta, om man skriver in sitt reg.nr. i denna ruta, så skickas man till en webbplats och man tar med sig reg.nr. och kommer direkt in på rätt ställe.
MEN om man inte skriver in något i rutan, så ska man komma till en annan webbplats. Idag har jag en Alert, som säger att man måste skriva något i rutan, men det vill jag helst inte ha.

Hoppas någon förstår vad jag menar :-)

JojoxxMedlem sedan juni 20004 306 inlägg
#6

Kan kanske bero på att webbplats 2 är långsam på att svara... testa detta.

<script type="text/javascript">
function validateForm(obj) {
if (obj.regnr.value=="") {
setTimeout("window.location.href='http://webforum.nu';",100);
return false;
} else {
return true;
}
}
</script> 
<form action="http://www.google.com" onsubmit="return validateForm(this);">
Reg nr: <input type="text" name="regnr">
<input type="submit" value="Skicka"
</form>
CammisMedlem sedan juni 20095 inlägg
#7

Ditt skript funkar perfekt, men inte i kombination med mitt formulär...
Är det något med "Get-kommandot" i formuläret som stökar till det.

<form name="f" onsubmit="return validateForm(this);" method="GET" action="http://213.136.58.58/butiken/directlink.asp" target="_blank">
<table cellspacing="0" cellpadding="0">
<tr>
<td valign="baseline" height="15">Ange ditt registreringsnummer:   
<input type="hidden" name="butikid" value="15281"></td>
<td valign="baseline" height="15">
<input id="regnr" name="regnr" type="text" onkeyup="javascript:this.value=this.value.toUpperCase();" value size="6" />
</td>
<td valign="baseline" height="15">
 
<input id="Submit1" type="submit" value="Sök artiklar" /></p>
</td>
</tr>
</table>
</form>

JojoxxMedlem sedan juni 20004 306 inlägg
#8

Funkar kanon när jag testar.

<script type="text/javascript">
function validateForm(obj) {
if (obj.regnr.value=="") {
setTimeout("window.location.href='http://webforum.nu';",100);
return false;
} else {
return true;
}
}
</script> 
<form name="f" onsubmit="return validateForm(this);" method="GET" action="http://213.136.58.58/butiken/directlink.asp" target="_blank">
<table cellspacing="0" cellpadding="0">
<tr>
<td valign="baseline" height="15">Ange ditt registreringsnummer:&nbsp;&nbsp;&nbsp;
<input type="hidden" name="butikid" value="15281"></td>
<td valign="baseline" height="15">
<input id="regnr" name="regnr" type="text" onkeyup="this.value=this.value.toUpperCase();" size="6" />
</td>
<td valign="baseline" height="15">
&nbsp;
<input id="Submit1" type="submit" value="Sök artiklar" /></p>
</td>
</tr>
</table>
</form>

Internet Explorers säkerhetsinställningar tillåter dock inte att scriptet körs lokalt på din dator, utan måste köras från http:// (din webbplats).

CammisMedlem sedan juni 20095 inlägg
#9

Tack så väldigt mycket för hjälpen nu funkar det!!

382 ms totalt · 5 externa anrop · cache AV · v20260730165559-full.0b955084
0 ms — hämta statistik (cache)
127 ms — slå upp tråd (db)
0 ms — hämta forumlista (cache)
129 ms — hämta inlägg (db)
123 ms — hämta bilagor (db)