【问题标题】:Javascript: Setting an input field value is not working in IE11Javascript:设置输入字段值在 IE11 中不起作用
【发布时间】:2014-06-11 01:12:02
【问题描述】:

我使用这段 javascript 来创建一个包含一些数据的输入字段(vk 已设置):

element = document.createElement('input');
element.value = v;
element.name = k;

这在 Chrome 中有效,但在 Internet Explorer(使用 v11 测试)中,仅设置了 name 属性,而不设置 value

奇怪的是,当我使用 jQuery 时,这是可行的:

element = document.createElement('input');
$(element).attr("value", v);
element.name = k;

为什么普通的 javascript 不能在这里工作?根据MSDN,它应该可以工作。


更新

我希望element.value 创建一个值属性,但它没有。确实该值设置正确,但在新创建的值属性或现有值属性的更改中并未显示该值。看来我测试的方式不对。

【问题讨论】:

  • 您到处都缺少分号。 document.createElement 'input' 应该是 document.createElement('input')
  • 可能对于 IE 你也必须定义type 的字段?
  • 这适用于 IE11:jsfiddle.net/rL2ta
  • “不工作”,如何检测到?正如您在 Yuriy 的小提琴中看到的那样,您的代码按原样运行。
  • 同意Teemu——定义“不工作”。另外,变量v 是否真的有数据/被定义?你想创建什么样的表单元素?设置元素值是非常标准的东西。您应该能够逐步完成并查看失败的地方。

标签: javascript jquery internet-explorer-11


【解决方案1】:

element.value = v 有效,它只是不创建 HTML 属性,但确实设置了值。它只会创建<input name="myname">,但该值仍然存在(例如在 UI 中可见)

演示1:http://jsfiddle.net/rL2ta/

如果您确实想创建实际的 HTML 属性 - 使用 element.setAttribute('value', v); - 将创建 <input value="value" name="myname">

演示 2:http://jsfiddle.net/ygalanter/rL2ta/1/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多