声明
使用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()
在不同的浏览器上返回不同的值。谁是对的?
答案 0 :(得分:4)
阅读w3 specification我认为Chrome和Firefox是正确的。特别是因为这个片段:
用BUTTON创建的按钮 元素功能就像按钮一样 用INPUT元素创建,但是 它们提供更丰富的渲染 可能性: BUTTON元素可能 有内容。
W3规范将<button></button>
标记之间的信息称为内容而不是值,这是我观察的结果。另一个提示是Internet Explorer是唯一一个返回不同值的人,我相当确定Internet Explorer是宇宙中所有痛苦的根源。
我还决定在Mac上测试Safari 5,Opera,Chrome和Firefox 3.6.8。全部返回456显示文本,123返回.val()
答案 1 :(得分:0)
我在IE 8.0.6001。*并且它的行为与Firefox完全相同 - http://www.jsfiddle.net/AKGsd/3/
您可能已经发现尚未 Internet Exploiter旧版本的另一个错误/功能......叹息!