2013-02-04 29 views
2

随着jQuery的最新变化,有不同的方法,.prop().attr()输入是否具有“原始值”属性?

我想知道的是,如果有一种方法来获取页面加载时的输入的原始值?

我知道我可以做的:

$('#input').data('originalValue', $('#input').val()); 

,然后我可以通过

$('#input').data('originalValue'); 

参考,但我想,既然我可以说,find out the original checked state of a checkbox我想也许有类似的东西价值?

回答

7

您可以使用输入元素的defaultValue property

例如:

$('#input')[0].defaultValue 

说明如何处理jQuery对象作为一个数组我们能够直接访问DOM节点及其原​​生属性。

jsFiddle demo

+0

您也可以使用占位符属性 – salexch

+0

@salexch True。为什么不把它作为答案呢?但请注意,“占位符”是一种HTML5属性,仅限于特定的一组输入类型。 – Boaz

+0

它不会是一个完整的答案。但也许你可以把它添加到你的 – salexch

4

您可以使用jQuery.get来获取元素,抓住.defaultValue属性:

$('#input').get(0).defaultValue 

或者使用jQuery.prop因为jQuery的1.6:

$('#input').prop("defaultValue"); 

同样为defaultChecked(无线电和复选框)和defaultSelected(选项)。

+0

我很好奇''defaultValue'的跨浏览器兼容性? – Hailwood

+0

找到了答案:http://stackoverflow.com/questions/5244466/how-safe-reliable-cross-browser-compatible-is-this0-defaultvalue – Hailwood

+1

请参阅[** Interface HTMLInputElement **](http:/ /www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-6043025)。请注意,这并不意味着你应该写'';这意味着对于'表示该对象的JavaScript对象将包含值为'1'的属性'.defaultValue',即使用户将其更改为其他内容。 –

相关问题