我有一个输入字段<input value="hello"/>
。如何以跨浏览器的方式获取value属性中的内容?如果我执行$input.attr('value')
或$input.val()
,则会返回用户在字段中键入的当前值,而不是value属性中设置的值。
如果我input.getAttribute('value')
,它会返回我想要的内容,但是跨浏览器兼容吗?
答案 0 :(得分:4)
使用defaultValue
属性:
input.defaultValue;
$("whatever").get(0).defaultValue;
答案 1 :(得分:0)
使用jquery,您将使用:
$('input').attr('value');
但是getAttribute()函数应该是跨浏览器兼容的。
答案 2 :(得分:0)
查看我的演示:http://jsfiddle.net/YUGQz/3/。
当您更改文本框的文本(至少在使用jQuery时)时,似乎更新了value
属性,因此.attr('value')
无法正常工作。
但是如果您尝试此演示:http://jsfiddle.net/YUGQz/4/,您可以看到使用 pure JavaScript,您可以获得原始属性的值:
document.getElementById('foo').getAttribute('value');
如果有人想尝试这种跨浏览器兼容性,那就太好了。只需更改文本框的值,然后按按钮。
答案 3 :(得分:0)
没有足够的积分向Blender添加评论
适用于Firefox,Chrome和Safari,但不能在IE(8)下运行。在IE中,您获得了与jQuery相同的行为。它返回文本框的当前值。