0

我在获取脚本以将 onsubmit 属性添加到 IE 中的表单时遇到问题。不过它在 Chrome 中运行良好。

document.getElementsByName('form_name').item(0).setAttribute("onsubmit","add_to_form()");

它很好地抓住了元素,我可以很好getAttribute地打印出预先存在的属性。

4

2 回答 2

2

让我们重写一下:

function listen(event, elem, func) { // cross-browser event listener
  if (elem.addEventListener) elem.addEventListener(event, func, false);
  else if (elem.attachEvent) elem.attachEvent('on' + event, func); // IE
}

listen('load', window, function() {
  var form = document.getElementsByName('form_name')[0];
  listen('submit', form, add_to_form);
});
于 2012-07-16T20:53:22.853 回答
2

您的文档可能将 IE 置于 Quirks 模式,因为在标准模式下,代码似乎可以正常工作。

要使代码也可以在 Quirks 模式下工作,您可以分配给 DOM 属性onsubmit而不是 HTML 属性。这两者在旧版本和 IE 的 Quirks Mode 中不一定相互对应。在您的示例中,请改用:

document.getElementsByName('form_name').item(0).onsubmit = add_to_form;
于 2012-07-16T21:06:14.430 回答