Connecting Tech Pros Worldwide Forums | Help | Site Map

Executing a function only after success validation

Newbie
 
Join Date: Aug 2006
Posts: 2
#1: Aug 7 '06
Im having a minor, simple problem. Basicly i have two different scripts they both work separately and together but just that both executes at the same time.

On my html page i have a form, one of the functions are that you can fill in the fields and when you press on a button you go to a new page, were all filled fields are shown.

Now i want to validate the form before i pass on the filled information to the "next page".

But right now when you click on the button, you get your form validated as normal and then you just get sent to the "next page" even if you fail to meet up the req.

Quote:
<input name="submit" value="submit" onClick="compile(); validate(this.form); return document.formSubmit;" type="button">
JS code:

Quote:
function validate(form){
var error = "";
//for each form element
for(var i=0; i<form.length; i++){
var element = form[i];
//if required
if(element.getAttribute("required") == "yes"){
//if form element if empty
if(!valid(element.value,element.getAttribute("vali date"),element))
error += element.getAttribute("message") + "\r\n";
}
}
if(error != ""){
alert(error);
document.formSubmit = false;
}
else
document.formSubmit = true;
}

function valid(value,type,element){
if(value == "")
return false;

switch(type){
case "int":
if(isNaN(parseInt(value)))
return false;
break;
case "float":
if(isNaN(parseFloat(value)))
return false;
break;
case "email":
var p = value.indexOf('@');
if(p<1 || p==(value.length-1))
return false;
break;
case "checked":
if(!element.checked)
return false;
break;
default://string
break;
}
return true;
}

//gather information
//pass on to "kontakta_print.html".
function compile() {
var falt = escape(document.form1.fornamn.value) + "&" +
escape(document.form1.efternamn.value) + "&" +
escape(document.form1.gatuadress.value) + "&" +
escape(document.form1.postnummer.value) + "&" +
escape(document.form1.postort.value) + "&" +
escape(document.form1.tfnnummer.value) + "&" +
escape(document.form1.epost.value) + "&" +
escape(document.form1.meddelande.value);
location.href = "kontakta_print.html?" + falt;
}

//get information from previous form
function getInfo() {
var find = location.search;
var get = find.substring(1);
var lista = get.split("&");
lista[0] = unescape(lista[0]);
return lista;
}

//funtion for printout
function skrivUt() {
var skriv = getInfo();
document.write("<p><b>F&ouml;rnamn: </b>" + skriv[0] + "<p>");
document.write("<p><b>Efternamn: </b>" + skriv[1] + "<p>");
document.write("<p><b>Adress: </b>" + skriv[2] + "<p>");
document.write("<p><b>Postnummer: </b>" + skriv[3] + "<p>");
document.write("<p><b>Postort: </b>" + skriv[4] + "<p>");
document.write("<p><b>Telefonnummer: </b>" + skriv[5] + "<p>");
document.write("<p><b>E-post: </b>" + skriv[6] + "<p>");
for (var i=0; i<skriv.length; i++)
document.write("<input type='hidden' name='input'" + i + "' value='" +skriv[i] + "' />");
}

Newbie
 
Join Date: Aug 2006
Posts: 2
#2: Aug 7 '06

re: Executing a function only after success validation


i fixed it :) just learn how to call a function
Newbie
 
Join Date: Oct 2007
Posts: 1
#3: Oct 7 '07

re: Executing a function only after success validation


Quote:

Originally Posted by cryme

Im having a minor, simple problem. Basicly i have two different scripts they both work separately and together but just that both executes at the same time.

On my html page i have a form, one of the functions are that you can fill in the fields and when you press on a button you go to a new page, were all filled fields are shown.

Now i want to validate the form before i pass on the filled information to the "next page".

But right now when you click on the button, you get your form validated as normal and then you just get sent to the "next page" even if you fail to meet up the req.



JS code:

Had the same problem. I solved it by checking the name on the inputboxes. If the name in your script and the name on the inputboxes in your form is different, the script will show the error messages on the ones that are correct and the send you directly to your "next" page. If all names are correct it will work perfectly.
Reply


Similar JavaScript / Ajax / DHTML bytes