Solved

asp.net jquery Retrieve Parent Data from IFrame

Posted on 2013-06-07
2
1,357 Views
Last Modified: 2016-03-24
I have an aspx (parent) page that contains various data fields and an iframe (html) page which contains hidden paypal specific fields.  upon submitting the iframe I am trying to capture the text values entered by user in the parent data field.  The code shown below is returning empty values from the parent fields. The syntax seems to be correct I am unsure what needs to be changed.

Please advise.
IFRAME Script;
    <script type="text/javascript" >
    <!--
        $(document).submit(function () {
            var donationRbl = "";
            var stateDDL = "";
            //First get the contents of the Radio button List and set to the Varible.
            var radioObj = $("[id^=<%=donation.ClientID %>]:input", window.parent.document);
            var radioLength = radioObj.length;
            for (var i = 0; i < radioLength; i++) {
                if (radioObj[i].checked) {
                    donationRbl = radioObj[i].value;
                }
            };

            $('#amount').val(donationRbl); //Set Amount field to donation selection
            $('#fist_name').val($("[id^=<%=Firstname.ClientID %>]:input", window.parent.document).val());
            $('#last_name').val($("[id^=<%=Lastname.ClientID %>]:input", window.parent.document).val());
            $('#address_street').val($("[id^=<%=Address.ClientID %>]:input", window.parent.document).val());
            $('#address_city').val($("[id^=<%=City.ClientID %>]:input", window.parent.document).val());
            $('#address_state').val($("[id^=<%=StateDDL.ClientID %>]:input", window.parent.document).val());
            $('#address_zip').val($("[id^=<%=Zip.ClientID %>]:input", window.parent.document).val());
            //$('#payer_email').val($("[id^=<%=Email.ClientID %>]:input", window.parent.document).val());

        });
    //-->
    </script>

IFRAME PayPal Fields:
                        <form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
                        <input type="hidden" name="cmd" value="_donations">
                            <input type="hidden" id="hosted_button_id" name="hosted_button_id" value="MYMERCHANTID">
                            <input type="hidden" id="business" name="business" value="info@MYDOMAIN.org">
                            <input type="hidden" id="lc" name="lc" value="US">
                            <input type="hidden" id="item_name" name="item_name" value="Transitions Online Donation">
                            <input type="hidden" id="amount" name="amount" value="">
                            <input type="hidden" id="return" name="return" value="http://mydomain.org">
                            <input type="hidden" id="cancel_return" name="cancel_return" value="http://mydomain.org/ContentPages/Donations.aspx">
                            <input type="hidden" id="first_name" name="first_name" value="">
                            <input type="hidden" id="last_name" name="last_name" value="">
                            <input type="hidden" id="address_street" name="address_street" value="">
                            <input type="hidden" id="address_city" name="address_city" value="">
                            <input type="hidden" id="address_state" name="address_state" value="">
                            <input type="hidden" id="address_zip" name="address_zip" value="">
                            <input type="hidden"  id="address_country"name="address_country" value="US">
                        <input type="hidden" id="currency_code" name="currency_code" value="USD">
                        <input type="hidden" id="bn" name="bn" value="PP-DonationsBF:btn_donateCC_LG.gif:NonHosted">
                        <input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
                        <img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
                        </form>

PARENT ASPX:
 <div class="donationPage">
            <hr />

                    <asp:Label runat="server" ID="Title" Text="Donation Amount" AssociatedControlID="donation"/>
                        <asp:RadioButtonList runat="server" ID="donation" RepeatColumns="4" RepeatDirection="Vertical" TextAlign="right" CellPadding="10" TabIndex="1" >
                        <asp:ListItem>$5</asp:ListItem>
                        <asp:ListItem>$25</asp:ListItem>
                        <asp:ListItem>$50</asp:ListItem>
                        <asp:ListItem>$75</asp:ListItem>
                        <asp:ListItem>$100</asp:ListItem>
                        <asp:ListItem>$150</asp:ListItem>
                        <asp:ListItem>$200</asp:ListItem>
                        <asp:ListItem>$500</asp:ListItem>
                        <asp:ListItem>$1,000</asp:ListItem>
                        <asp:ListItem>$2,000</asp:ListItem>
                        <asp:ListItem>Other Amount</asp:ListItem>
                        </asp:RadioButtonList>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                        ControlToValidate="donation" CssClass="failureNotification" Display="Dynamic" 
                        ErrorMessage="Before you Submit page you must make a donation selection." ToolTip="Donation Selection." 
                        ValidationGroup="DonationValidation">*</asp:RequiredFieldValidator>
                </div><br />
                <div class="donationPage">
                    <asp:Label runat="server" ID="NameLbl" Font-Bold="true" Text="Name" />
                        <p>
                            <asp:Label ID="FirstNameLbl" runat="server" AssociatedControlID="FirstName" Text="* First name: "></asp:Label>
                            <asp:TextBox ID="Firstname" runat="server" TabIndex="2" CssClass="width17"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="FirstNameRequired" runat="server" 
                                ControlToValidate="FirstName" CssClass="failureNotification" Display="Dynamic" 
                                ErrorMessage="First Name is required." ToolTip="User's First name is required." 
                                ValidationGroup="DonationValidation">*</asp:RequiredFieldValidator>
                        </p>
                        <p>
                            <asp:Label ID="LastNameLbl" runat="server" AssociatedControlID="Lastname">* Last name:  </asp:Label>
                            <asp:TextBox ID="Lastname" runat="server" TabIndex="3" CssClass="width17"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="LastNameRequired" runat="server" 
                                ControlToValidate="Lastname" CssClass="failureNotification" Display="Dynamic" 
                                ErrorMessage="Last Name is required." ToolTip="User's Last name is required." 
                                ValidationGroup="DonationValidation">*</asp:RequiredFieldValidator>
                        </p>
                        <p>
                            <asp:Label ID="EmailAddressLbl" runat="server" AssociatedControlID="EmailAddress" Text="Email Address: " />
                            <asp:TextBox ID="EmailAddress" runat="server" TabIndex="4" CssClass="width12" />
                        </p> 
                       <p><asp:Label runat="server" id="title128" Font-Bold="true" Text="Billing Address"/></p>
                    <div>
                        <p>
                        <asp:Label ID="StreeAddressLbl" runat="server" AssociatedControlID="Address" Text="* Address: "></asp:Label>
                            <asp:TextBox ID="Address" runat="server" TabIndex="5" CssClass="width20" />
                            <asp:RequiredFieldValidator ID="ClientAddressRequired" runat="server" 
                            ControlToValidate="Address" CssClass="failureNotification" Display="Dynamic" 
                            ErrorMessage="Address is required." ToolTip="Address is required." 
                            ValidationGroup="DonationValidation">*</asp:RequiredFieldValidator>
                        </p>
                        <p>
                        <asp:Label ID="CityLbl" runat="server" AssociatedControlID="City" Text="* City: "></asp:Label>
                            <asp:TextBox ID="City" runat="server" TabIndex="6" CssClass="width12"></asp:TextBox></p>
                        <p>
                        <asp:Label ID="StateLbl" runat="server" AssociatedControlID="StateDDL" Text="* State: "></asp:Label>
                        <asp:DropDownList ID="StateDDL" runat="server" TabIndex="7" CssClass="width7">
                            <asp:ListItem Text="-Select-" Value="0"></asp:ListItem>
                            <asp:ListItem Text="AL" Value="AL" />
                            <asp:ListItem Text="AK" Value="AK" />
                            <asp:ListItem Text="AZ" Value="AZ" />
                            <asp:ListItem Text="AR" Value="AR" />
                            <asp:ListItem Text="CA" Value="CA" />
                            <asp:ListItem Text="CO" Value="CO" />
                            <asp:ListItem Text="CT" Value="CT" />
                            <asp:ListItem Text="DE" Value="DE" />
                            <asp:ListItem Text="FL" Value="FL" />
                            <asp:ListItem Text="GA" Value="GA" />
                            <asp:ListItem Text="HI" Value="HI" />
                            <asp:ListItem Text="ID" Value="ID" />
                            <asp:ListItem Text="IL" Value="IL" />
                            <asp:ListItem Text="IN" Value="IN" />
                            <asp:ListItem Text="IA" Value="IA" />
                            <asp:ListItem Text="KS" Value="KS" />
                            <asp:ListItem Text="KY" Value="KY" />
                            <asp:ListItem Text="LA" Value="LA" />
                            <asp:ListItem Text="ME" Value="ME" />
                            <asp:ListItem Text="MD" Value="MD" />
                            <asp:ListItem Text="MA" Value="MA" />
                            <asp:ListItem Text="MI" Value="MI" />
                            <asp:ListItem Text="MN" Value="MN" />
                            <asp:ListItem Text="MS" Value="MS" />
                            <asp:ListItem Text="MO" Value="MO" />
                            <asp:ListItem Text="MT" Value="MT" />
                            <asp:ListItem Text="NE" Value="NE" />
                            <asp:ListItem Text="NV" Value="NV" />
                            <asp:ListItem Text="NH" Value="NH" />
                            <asp:ListItem Text="NJ" Value="NJ" />
                            <asp:ListItem Text="NM" Value="NM" />
                            <asp:ListItem Text="NY" Value="NY" />
                            <asp:ListItem Text="NC" Value="NC" />
                            <asp:ListItem Text="ND" Value="ND" />
                            <asp:ListItem Text="OH" Value="OH" />
                            <asp:ListItem Text="OK" Value="OK" />
                            <asp:ListItem Text="OR" Value="OR" />
                            <asp:ListItem Text="PA" Value="PA" />
                            <asp:ListItem Text="RI" Value="RI" />
                            <asp:ListItem Text="SC" Value="SC" />
                            <asp:ListItem Text="SD" Value="SD" />
                            <asp:ListItem Text="TN" Value="TN" />
                            <asp:ListItem Text="TX" Value="TX" />
                            <asp:ListItem Text="UT" Value="UT" />
                            <asp:ListItem Text="VT" Value="VT" />
                            <asp:ListItem Text="VA" Value="VA" />
                            <asp:ListItem Text="WA" Value="WA" />
                            <asp:ListItem Text="WV" Value="WV" />
                            <asp:ListItem Text="WI" Value="WI" />
                            <asp:ListItem Text="WY" Value="WY" />
                        </asp:DropDownList>
                            <asp:RequiredFieldValidator ID="StateRequired" runat="server" 
                            ControlToValidate="StateDDL" CssClass="failureNotification" 
                            Display="Dynamic" ErrorMessage="Selection of State to complete address is required." 
                            InitialValue="0" ToolTip="User's Selects a State." 
                            ValidationGroup="DonationValidation">*</asp:RequiredFieldValidator>
                        </p>
                        <p>
                        <asp:Label ID="ZipLbl" runat="server" AssociatedControlID="Zip" Text="* Zip: " />
                            <asp:TextBox ID="Zip" runat="server" TabIndex="8" CssClass="width7" />
                            <asp:RequiredFieldValidator ID="ZipRequired" runat="server" 
                            ControlToValidate="Zip" CssClass="failureNotification" Display="Dynamic" 
                            ErrorMessage="Zip is required." ToolTip="Zip is required." 
                            ValidationGroup="DonationValidation">*</asp:RequiredFieldValidator>
                        </p>
                </div>
                <div>
                    <p>Upon clicking submit, you will be forwarded to PayPal to complete your donation.<br />p>

                </div><br />
                <div>
                <!--Put PayPal Button Here-->
                    <iframe id="paypalIframe" name="paypalIframe" src="../Scripts/paypalbutton.htm" style="width:100%;"  frameborder="0" scrolling="no"></iframe>
                </div><br />

Open in new window

0
Comment
Question by:Robert Treadwell
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 36

Accepted Solution

by:
Miguel Oz earned 500 total points
ID: 39230883
Try replacing window.parent.document with parent.document.
if it does not work after checking that
$("[id^=<%=Firstname.ClientID %>]:input", parent.document)
does not return a valid object.

I will suggest using methods in your parent window, for example for first name your JS iframe code is :
$('#fist_name').val($("[id^=<%=Firstname.ClientID %>]:input", window.parent.document).val());

Open in new window

My suggestion wil be implemented as:
$('#fist_name').val(parent.GetFirstName());

Open in new window

where GetFirstName is defined in the parent aspx as follows:
function GetFirstName()
{
  return $("[id^=<%=Firstname.ClientID %>]:input").val();
}

Open in new window

0
 

Author Closing Comment

by:Robert Treadwell
ID: 39231496
This solution worked exactly as suggested.
0

Featured Post

Monthly Recap

May was a big month for new releases from Linux Academy! Take a look at what our team built recently in our blog. You can access the newest releases from our blog.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

What is a Lightbox? A Lightbox is the effect you see when you click, for example, an image and the screen fades out and up pops the same image but in its full size dimensions. There are lots of Lightbox effects for jQuery. Problem is they are a…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
The viewer will learn how to dynamically set the form action using jQuery.
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)

734 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