views:

60

answers:

2

Hi guys! So I have a validation script I made a while ago. I can pass the script "this" as the form identifier to get it going on the right element (with(this)). But what if I want to call this validation function from a place other than the form itself, let's say, in an another request that wants to know if the form is valid?

   function validate_form(thisform) {
        with (thisform) {
            validate_fullName(fullName);
            validate_email(email);
            if (isName&&isEmail) {return true;};
            return false;
        };
    };

So basically I want to call this function in another function to check if the form is valid or not:

if(validate_form(WHATDOIPUTHERE?)){ // STUFF; };

Thank you so much!!

+1  A: 

One way is to use id:

function validate_form('formid') {
    with ('formid') {
        validate_fullName(fullName);
        validate_email(email);
        if (isName&&isEmail) {return true;};
        return false;
    };
};


if(validate_form('formid')){ // STUFF; };
Sarfraz
Fix your function definition.
Matthew Flaschen
@Matthew Flaschen: could not get that?
Sarfraz
It should be function validate_form(formid) { with (formid) {No quotes
Matthew Flaschen
@Matthew Flaschen: right thanks :)
Sarfraz
But this still doesn't quite make sense, because with expects an object, not an id.
Matthew Flaschen
@Matthew Flaschen: now i would simply ask, what is the solution in your eyes?
Sarfraz
Pretty much Marius's.
Matthew Flaschen
@Matthew Flaschen: ok that is why it is chosen one. Thanks for your time
Sarfraz
+2  A: 

you can use document.getElementById("formId") (or $("#formId") in jquery):

if(validate_form(document.getElementById("formId"))){ // STUFF; };

For this to work you need to set the id of the form, like so:

<form id="formId" method="post" action="...">

</form>
Marius