【发布时间】:2014-09-01 08:09:29
【问题描述】:
here、here 和 here 以及其他地方有几个问题/答案,但它们似乎都是 JQuery 特定的,似乎不适用于此(例如,我 NOT 创建一个新的 Form 对象,这是文档中现有的表单。我也不使用 Jquery)。
出于 IE7 兼容性的原因,我有一个表单必须在提交前进行修改。我必须从我的表单中删除所有 BUTTON 标记,然后添加一个隐藏字段,但这都是在现有 HTML 页面上的现有表单中。此代码在 IE 和 Chrome 中正常运行,但在 Firefox 中无法运行(版本 23 和 24 均已测试)。
buttonClickFunction(formName, buttonObject) {
var formObject = document.forms[formName];
var i = 0;
// Strip out BUTTON objects
for (i=0;i<formObject.length;i++) {
if (formObject[i].tagName === 'BUTTON') {
formObject[i].parentNode.removeChild(formObject[i]);
i--;
}
}
// Create new field
var newField = document.createElement('input');
newField.type = 'hidden';
newField.id=buttonObject.id;
newField.name = buttonObject.name;
if (buttonObject.attributes['value'] != null) {
newField.value = buttonObject.attributes['value'].value;
} else {
newField.value = buttonObject.value;
}
// Submit form
formObject.appendChild(newField);
document.forms[formName].appendChild(newField);
document.forms[formName].submit();
}
除了document.forms[formName].submit(),我还尝试过formObject.submit()——两者都可以在 Chrome 中使用,但在 Firefox 中都失败了。我不知道为什么这不起作用 - 我已经通过 JS 跟踪并观察到 document.forms[formName].submit() 执行 - 没有出现异常,但没有任何东西进入服务器。
谁能找出 Firefox 不提交此表单的原因,以及我该如何解决?
【问题讨论】:
标签: javascript forms dojo