Internet Explorer 11 正在将 value="1_1" 更改为 value="1"!!我能做什么?



http://bootsnipp.com/snippets/9pwx
问题是:
我一直在研究Bootstrap Navbars的应用程序。为了将值传递到JavaScript函数,我已将属性"值"添加到许多LI元素中。一个例子:


<ul>
   <li value="1_1" onclick="doSomethingTo(this);">Option1</li>
   <li value="1_2" onclick="doSomethingTo(this);">Option2</li>
</ul>

一切正常,直到我在Internet Explorer中尝试。然后突然,Internet Explorer决定将属性更改为value =" 1"。它在浏览器上呈现为:

<ul>
   <li value="1" onclick="doSomethingTo(this);">Option1</li>
   <li value="1" onclick="doSomethingTo(this);">Option2</li>
</ul>

我现在无法访问其余值,该值已在处理程序函数中使用。

在这种情况下,我可以对IE做些什么可以使其停止更改属性值?这是一个已知问题吗?

我的解决方法现在是将所有属性名称更改为" val",然后更改我的所有JavaScript。对此不太满意。

谢谢。

在定义非标准字段时,将"data-"用作属性名称前缀更为标准。正如@cristy评论了<li>上的"value"属性有意限制为一个数字。

https://developer.mozilla.org/en-us/docs/web/html/element/li#attr-value

<ul>
   <li data-value="1" onclick="doSomethingTo(this);">Option1</li>
   <li data-value="1" onclick="doSomethingTo(this);">Option2</li>
</ul>

...

function doSomethingTo(element) {
    console.log(element.getAttribute("data-value"));
}

有趣的是,即(怪异)实际上有助于找到一个潜在的问题!

最新更新