我有一个从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中完美运行,因此似乎是浏览器特定的问题?
由于