Solved

programmatically submitting a form with validation

Posted on 2008-10-16
2
251 Views
Last Modified: 2013-11-05
Hi,

I have a form, which is sometimes submitted by clicking a submit button, sometimes by enter being pressed in a field, and sometimes programmatically (By the clicking of a "Master Save" elsewhere on the page).

So I created an onsubmit event to do field validation. This works for the first two methods, but breaks for the third. (Ridiculously, the submit() function doesn't trigger onsubmit!)

To hack my way around that, I call the onsubmit event programatically too, but as the form is in an IFrame and the "Master Save" is in the parent page, I can't call the javascript function by name, and have to do this:

if (document.getElementById('IFrame1').contentDocumen t.forms[0].onsubmit())
document.getElementById('IFrame1').contentDocument .forms[0].submit();

This works fine in FF, but IE6 is giving me issues. I know, IE6 is ancient, I have no choice, that's the browser the company mandates.

Can anyone suggest why this is breaking, or how else I can call the function in the IFrame?

Thanks,
Rich
0
Comment
Question by:Phyrefly
2 Comments
 
LVL 7

Accepted Solution

by:
bluV11t earned 350 total points
ID: 22729635
Got the master submit to submit the form but it does not validate
//master save button

<input type=button value="master_submit" onclick="JavaScript=submit_iframe();" />
 

//Javascript function in parent page to call submit of form in iframe

 function submit_iframe(){

     var x = document.getElementById('IFrame1');
 

    if (x.contentWindow) {

    x = x.contentWindow.document.forms[0];

    }

    else {

    x = x.contentDocument.forms[0];

    }

    return(x.submit());

 }

Open in new window

0
 
LVL 1

Author Comment

by:Phyrefly
ID: 22729695
Thank you, that iis what I was missing, it works now.

To make it validate as well, I also had to do this in the IFrame itself:

      var f = document.getElementById('DetailsForm');
      f._submit = f.submit;
      f.submit = function() { if (SanityCheck()) { this._submit() } };

Rich
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Form submit issue 11 54
date format angularjs2 16 41
Change text when typing into field 2 22
populate dynamic drop down from a csv 3 39
Having worked on larger scale sites, we found out that you are bound to look at more scalable solutions to integrating widgets, code snippets or complete applications and mesh them into functional sites, in any given composition. To share some of…
This article discusses the difference between strict equality operator and equality operator in JavaScript. The Need: Because JavaScript performs an implicit type conversion when performing comparisons, we have to take this into account when wri…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…

758 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now