【发布时间】:2015-09-24 17:50:20
【问题描述】:
我正在创建一个表单以在 javascript 函数中提交。我将该函数绑定到一个选择元素的 onchange 事件。事件在 chrome 和 firefox 中运行良好,我对其进行了测试,它调用了该函数。但问题是; chrome 提交表单时,firefox 没有。能否请你帮忙? 谢谢。
Javascript 函数:
function getStatementDetails()
{
var stmtSelect = document.getElementById("statementSelect");
var selectedId = stmtSelect.options[stmtSelect.selectedIndex].value;
var stmtForm = document.createElement("form");
stmtForm.setAttribute('method', "post");
stmtForm.setAttribute('action', "mymiles-mystatement");
var stmtId = document.createElement("input");
stmtId.setAttribute('type', "hidden");
stmtId.setAttribute('name', "statementID");
stmtId.setAttribute('id', "statementID");
stmtId.setAttribute('value', selectedId);
stmtForm.appendChild(stmtId);
stmtForm.submit();
};
选择输入:
<select id="statementSelect" name="statementSelect" class="select-miles select-miles-medium spacing-right-10" onchange="getStatementDetails()">
编辑: 我已阅读建议的帖子并尝试过。还是行不通。 函数最新状态:
function getStatementDetails()
{
var stmtSelect = document.getElementById("statementSelect");
var selectedId = stmtSelect.options[stmtSelect.selectedIndex].value;
var stmtForm = document.createElement("form");
stmtForm.setAttribute('method', "post");
stmtForm.setAttribute('action', "mymiles-mystatement");
var stmtId = document.createElement("input");
stmtId.setAttribute('type', "hidden");
stmtId.setAttribute('name', "statementID");
stmtId.setAttribute('id', "statementID");
stmtId.setAttribute('value', selectedId);
var stmtSbmt = document.createElement("input");
stmtSbmt.setAttribute('type', "submit");
stmtSbmt.setAttribute('name', "tryMe");
stmtSbmt.setAttribute('id', "tryMe");
stmtSbmt.setAttribute('value', "try submit");
stmtForm.appendChild(stmtId);
stmtForm.appendChild(stmtSbmt);
stmtForm.submit();
};
【问题讨论】:
-
这似乎是一个正确的代码,很长,这是必要的,但它必须工作。您可以告诉我们控制台是否抛出错误?在 Firefox 中,ALT + F2 打开超级开发者栏,并在工具按钮中,您可以在其中找到检查器、控制台等。
-
也许 Firefox 不会在同一个 JavaScript 方法中刷新 DOM 更改。您可以尝试使用 Timeout 等待或使用 jQuery
-
使用 jQuery 是 2 行代码。但他是用纯 JavaScript 写的,我不知道为什么,但我认为他有他的理由
-
@MarcosPérezGude - 它可以为您解决这些问题。如果 jQuery 是答案,那么你问错了问题
-
@MarcosPérezGude - 但是 Alt+F2 什么也没做 - 现在做你真尴尬
标签: javascript html forms firefox form-submit