Gandalf the White
Gandalf the White

Reputation: 2465

Form Submit not working in latest chrome build (83)

Chrome : chrome update Version 83.0.4103.97 (Official Build) (64-bit)

Flow

  1. Function function_name is called from a page (this page remains the main parent page in the whole scenario) which has a table with multiple records and a record has a hyperlink which fetches more data and displays in an overlay/popup.
  2. The code etc. mentioned in the code section in the bottom is on that Popup/Overlay piece where form & iframe exist and facilitate the whole process.
  3. On Form submit here another piece of html code is called which is then populated in iframe, please check the target of the iframe.

Issue

The form submit was working earlier for all browsers and post new update it's not working on latest chrome build but it is working on other browsers at the moment without any issue.

Explanation of not working

I have added logs, it works as expected till form submit line is called. On Form submit we expect the new html piece to be called and then that to be loaded in the iframe. That page never gets invoked on the latest chrome build (does get invoked in all other browsers), there is no reflection on network tab either which should happen because on form submit another file is called. (happens in all other cases)

Observations

  1. The popup flow is initiated from a button click in parent page (as explained in the flow)

    < a href="#" onclick="function(this,val1,val2); return false;">

The code for the same is given above, if the same piece of code is removed from the parent page and then replaced with something else and then again changed back to this same code then it works normally. (I have no clue why!)

  1. The behavior is erratic too, once in a blue moon even on latest chrome it works properly, once or twice. But the efficiency of system on all other browsers is 100%.

Code : Minimal (Comments are added for understanding separately)

<div id="divid" class="dialog" title="">    
<!-- Iframe -->
    <center>
      <iframe name="frameid" id="frameid" src="/images/somegif.gif" width=820 height=400 frameborder=0 style="border:0; padding:0; margin:0;"></iframe>
    </center>
</div>
    <!-- Form -->
    <form id="formid" name="formid" method="post" action="/somefile.html" target="framename">
       <!-- Some Form Elements -->
    </form>
    <script>
    //Javascript

$(function() {
    $("#divid").dialog({
        width: 860,
        autoOpen: false,
        modal: true,
        resizable: false,
        open: function(e, ui) {
            $(this).siblings(".ui-dialog-titlebar").find("button").blur(); 
        },
        close: function() {
            jQuery('#framename').attr('src','/images/somegif.gif')
        }
    });
});

    function function_name(val1,val2) {
      var form_obj;
      form_obj=document.getElementById('formid');
      if (form_obj) {
        //some operation, validation etc.   
        jQuery("#divid").dialog('open');
        somefun(form_obj, "var_name", var_name); //They are working fine 
        somefun2(form_obj, "var_name2", var_name2); //They are working fine
        form_obj.submit();
      }
    }
    </script>

I just noticed that form name and id is same, same goes for the iframe. The developer who wrote this is not with us anymore, in short, not my code.

Upvotes: 1

Views: 1694

Answers (1)

rosbel
rosbel

Reputation: 46

@Gandalf, found this issue on chromium. Issue 1092200: Submitting form whose target is an iframe randomly fail siliently

A bug fix for it was merged into 84, but a bugfix for Issue 1092313: Form submission takes precedence over window.location navigation caused a regression, and looks like they are still looking into it..

We are also experiencing the same problem, and watching 1092200

Upvotes: 3

Related Questions