Py学习  »  Jquery

jquery.val()浏览器差异

Hailwood • 5 年前 • 885 次点击  

声明
如果您有一个按钮元素定义如下,则使用jquery: <button value="123">456</button>

如果您使用以下任一选项,浏览器将为您提供不同的值 .attr('value'); .val();


原因何在?
<button> 元素只是 <input type="button"> 用速记法

您设置 <input type=“button”> 是设定 value="Click Me"

因此 <input type="button" value="Click Me"> 是一样的 <button>Click Me</button> .


问题
为什么使用 .val() 在不同的浏览器上返回不同的值。谁是正确的?
Firefox:
.val()=123显示文本=456
铬:
.val()=123显示文本=456
>=Internet Explorer 8:
.val()=123显示文本=456
<=Internet Explorer 7:
.val()=456显示文本=456
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/31735
 
885 次点击  
文章 [ 2 ]  |  最新文章 5 年前
Floyd Pink
Reply   •   1 楼
Floyd Pink    13 年前

我在IE8.0.6001*上,它的行为和Firefox完全一样。- http://www.jsfiddle.net/AKGsd/3/

你可能发现了 然而 Internet Explorer旧版本的另一个错误/功能…叹息!

Robert
Reply   •   2 楼
Robert    10 年前

阅读 w3 specification 我相信Chrome和Firefox是正确的。特别是因为这个片段:

用按钮创建的按钮 元素的功能和按钮一样 使用输入元素创建,但 它们提供更丰富的渲染效果 可能性: 按钮元素可以 有内容。

W3规范引用了 <button></button> 标签作为 内容 而不是 价值 这就是我观察的原因。另一个提示是,Internet Explorer是唯一一个返回不同值的浏览器,我相当肯定Internet Explorer是宇宙中所有痛苦的根源。


我还决定在Mac上测试Safari 5、Opera、Chrome和Firefox 3.6.8。全部返回456作为文本显示,123作为 .val()