【问题标题】:jQuery - can't change the id of a cloned form in IEjQuery - 无法在 IE 中更改克隆表单的 id
【发布时间】:2011-05-15 05:04:04
【问题描述】:

我想动态地将行添加到表中,我通过克隆行并更改其 id 来实现:

var cloned = $('#tempRow').clone().attr("id","tr" + trLastId);

然后我想改变行中其他组件的id,例如:

cloned.find('input[id^="upload"]').attr("id","upload" + trLastId);

当我想更改表单的 id 时出现问题,它是该行的第一个子项并包含所有其他组件:

cloned.find("form").attr('id', "dynamicForm"+trLastId);

以上所有行在 Firefox 中都可以正常工作,但最后一行在 IE8 中无法正常工作。克隆尚未插入(在插入之前我需要更改所有 id),只是保存到“克隆”变量中。为什么 IE 不允许我更改克隆表单的 id?我怎样才能克服它?我正在使用 jquery 1.3.2。

【问题讨论】:

  • 您是否看到任何错误,或者它什么也没做?
  • 错误:对象不支持该属性或方法

标签: jquery forms clone


【解决方案1】:

您的描述表明您的 HTML 不是 100% 有效,例如 <tr><form>...</form></tr><tr><td><form></td>...<td></form></td></tr>。 JavaScript 需要在有效的 DOM 树中工作,因此当浏览器发现无效的 HTML 时,它会尝试更改结构以使其有效。这意味着 jQuery 正在处理的实际文档可能与您所想的不同;它甚至可能因浏览器而异。

您能否确认您的 HTML 是否通过 http://validator.w3.org/ 或任何其他类似服务验证?

【讨论】:

  • 是的,我想这是问题所在,将 from 放在错误的位置:
    ... 我会尝试用
      标记和表格行替换表格带有 标签。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-22
  • 1970-01-01
相关资源
最近更新 更多