Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 739
  • Last Modified:

Intermittent jQuery in IE 11 Only

I’m trying to change a button color in an iFrame bases on the drop down list. My code works every time in Chrome but in IE it works about 45% of the time. It fails on loading. If it works on load it keeps working. If it fails on load it never works. Note, this is a DNN site.

Non-repeatable bugs drive me crazy. Any ideas?

Thanks!

    function buttonColor()
        {
            var color
            switch ($(this).val())
            {
                case "Orange": color = "#FF8429"; break;
                case "Green": color = "#00C354"; break;

            };

            var btn = $(this).closest("td").siblings("td").find(".btnPayPal");
            btn.css("background-color", color);
            btn.css("border", "1px solid " + color);

        }; // END buttonColor

    </script>
    <script>
        $(window).ready(function ()
        {
            $(".iFProductOne").load(function () { $(".iFProductOne").contents().find(".ddlPayPal").on("change", buttonColor) });
            $(".iFProductTwo").load(function () { $(".iFProductTwo").contents().find(".ddlPayPal").on("change", buttonColor) });
            console.log("Win Ready");
        }); 
    </script>

Open in new window


IFRAME LOADED:

Form target="paypal" action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XXX">
<table class="ppTable">
    <tr>
        <td>
            <select name="os0"  class="ddlPayPal">
                <option value="Orange">Orange </option>
                <option value="Green">Green </option>
            </select>
        </td>
        <td>
            <input class="btnPayPal" type="submit" border="0" name="submit" value="Add to Cart" style="color: white;
                background-color: gray; border: 1px solid #FF8429" />
        </td>
    </tr>
</table>
<img alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif"
    width="1" height="1">
</form>

Open in new window

0
rcl58
Asked:
rcl58
  • 2
  • 2
1 Solution
 
leakim971PluritechnicianCommented:
Did you really put :  $(window).ready(function ()
instead :  $(window).load(function ()
0
 
rcl58Author Commented:
I have the code in $(window).ready because in reality I have six iframes on the page and it was binding to maybe two sporadically which lead me to believe that all the iframes were not loaded yet. I tried it in $(document).ready, $(window).load and just in <script>. I’ve gotten closest with in $(window).ready.

I have also added a trigger to to compensate for the widow being completed.

$(".iFProductOne").load(function () { $(".iFProductOne").contents().find(".ddlPayPal").on("change", buttonColor) });
$(".iFProductOne").load(function () { $(".iFProductOne").contents().find(".ddlPayPal").trigger("change") });

Open in new window

0
 
leakim971PluritechnicianCommented:
could you add javascript code in the iframe page?
0
 
rcl58Author Commented:
I have not solved this problem but have to move on and will re-examine later. TX
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now