在innerhtml更新后,表单提交不在Javascript函数中工作

时间:2016-11-29 13:33:01

标签: javascript html asp.net forms

我有一个从OnClientClick调用的Javascript函数,它正在更改表单操作。原因是表单上还有其他按钮,但只需要其中一个按钮进行回发。我希望在新窗口中打开回发的目标,同时使用div.innerhtml =“一些HTML代码在这里改变发件人表单的内容!”

我已经设法编写了一个可以在Chrome,IE和Opera中运行的功能,但我无法在Firefox中使用它。一旦我添加代码以更改Div的内容由于某种原因,Form.Submit似乎不会发生。 div的内容更新但新窗口无法打开。如果我从下面的代码中删除innerHTML编辑,则提交工作,并根据需要打开新窗口或选项卡。这个问题似乎发生在Firefox中。

这是我的代码。

<script type="text/javascript">
      /* Used to change form submission to another address , by dynamically setting a buttons OnClientClick property on server side */
      function SetFormAction() {
        var frm = document.getElementById("form1");
        var paybut = document.getElementById("altCtButton1");
        var canbut = document.getElementById("altCtButton2");
        var altdiv = document.getElementById("divAltContent");
        frm.action = "http://www.awebite.com";
        paybut.disabled = "disabled";
        canbut.disabled = "disabled";
        frm.target = "_blank";
        altdiv.innerHTML = "<br /><p>Process has been started, please complete in the new browser window and return to the jobs list when done!</p>" +
        "<p><a href='/mysite/apage.aspx' class='btnType2' >Jobs List</a></p><br />"; 
        frm.submit();
        return false;
      }
</script>

因此,从浏览器中的提交按钮调用OnClick事件上面的函数。它改变了form1的动作,禁用了调用它的按钮,然后偏执改变了包含按钮的div的内容。

有关此功能在Firefox中不起作用的任何帮助都将不胜感激。

因此,调用此函数的标记来自一个div,后者从后面的vb代码渲染,但看起来像这样:

<!-- ShowAltContentMessage() Template ASPX Code Block - BEGIN -->
<div id="divAltContent" class="box">        
  <div class="content">
    <input type="hidden" name="altCtStateData" id="altCtStateData" />
       <span id="altCtHdrLabel"><P><B>Proceed to Payment Details Entry?</B></P></span>
       <span id="altCtBdyLabel"><P>It appears a process was previously initiated however it may have been cancelled, please ensure you are not making a duplicate process.</P></span>
       <span id="altCtFtrLabel"></span>
       <input type="submit" name="altCtButton1" value="Yes - Process Job" onclick="SetPaymentServiceAction();" id="altCtButton1" class="btnType2" />
       <input type="submit" name="altCtButton2" value="No - Abort" id="altCtButton2" class="btnType2" />
  </div>
</div>  
<!-- ShowAltContentMessage() Template ASPX Code Block - END --> 

有趣的是,如果我删除代码行:

altdiv.innerHTML = "<br /><p>Process has been started, please complete in the new browser window and return to the jobs list when done!</p>" +
    "<p><a href='/mysite/apage.aspx' class='btnType2' >Jobs List</a></p><br />"; 

从Javascript功能开始,除了内容更新外,一切都在Firefox中有效。 I.E新窗口或标签随新网址打开,按钮被禁用。

正如我所提到的,此代码在Chrome,IE和Opera中完美运行,因此似乎是浏览器特定的问题?

由于

0 个答案:

没有答案