IE兼容外部输入引用表单

时间:2014-01-29 19:20:04

标签: javascript html forms

情况

我有一张表格

<form action="." method="POST" id="my_form">
    <!-- Form stuff here -->
</form>
<p onclick="confirmUpdate();">Update</p>

confirmUpdate()函数生成确认消息和以下输入标记:

<input type="submit" name="my_name" value="Yes. Update the data.">

使用以下JavaScript:

inputYes.type = 'submit';
inputYes.name = 'my_name';
inputYes.value = 'Yes. Update the data.';
inputYes.form = 'my_form';

页面按预期创建,但输入元素上没有form="my_form"

条件

使用Javascript生成的HTML必须显示为一个不错的“HTML弹出窗口”(不是警告框),以便在提交之前询问用户信息是否正确。

问题

  1. 为什么不工作?
  2. JavaScript生成的HTML不会出现在Page Source上。它是否能够从表单中提交数据?
  3. 提前谢谢。

3 个答案:

答案 0 :(得分:1)

您应该使用setAttribute代替:

inputYes.setAttribute('form', 'my_form');

答案 1 :(得分:0)

如果目标是让输入按钮工作,那么在方法confirmUpdate()中,进行以下添加/更改:

此处更新了小提琴:http://jsfiddle.net/B7QAc/4/

//add this 
var theform = document.getElementById('my_form');

//change this
document.body.appendChild(screenDiv);

//to this
theform.appendChild(screenDiv);

答案 2 :(得分:0)

虽然之前的答案是正确的,但我找到了一个更好的解决方案来解决我的问题。我不得不更新问题,以便更清楚。使用Javascript生成的HTML旨在显示为一个很好的“弹出窗口”,在提交之前询问用户信息是否正确。

因此,<input>代码必须位于<form>之外,并通过id="my_form"属性引用其form="my_form

以下是更新后的JSFiddle

虽然inputYes.form = 'my_form';未添加form属性,但inputYes.setAttribute('form', 'my_form');可以完成此任务。

注意虽然它只能在脚本结束时使用 ,但它会附加到HTML文档中。否则它将不起作用(至少在这个脚本中)。

即使我缺乏更好地解释它的技术知识,但这些都是我的观察。

这将是公认的答案。我会立即接受比这个更完整的任何其他答案。