JQuery:获取原始输入值

My *_*rts 21 javascript jquery input

是否可以获取表单输入字段的初始值?

例如:

<form action="" id="formId">
    <input type="text" name="one" value="one" id="one" />
</form>

$("#one").attr("value");   //would output "one"
$("#one").val();           //would output "one"
$("#one").get(0).value;    //would output "one"
Run Code Online (Sandbox Code Playgroud)

但是,如果用户随后将#one输入字段的内容更改为2,则html看起来仍然相同(其中一个作为值),但上面的JQuery调用将返回两个.

JSFiddle玩:http://jsfiddle.net/WRKHk/

我认为仍然可以获得原始值,因为我们可以调用document.forms["formId"].reset()将表单重置为其原始状态.

gra*_*ine 32

试试这个:

$("#one")[0].defaultValue;
Run Code Online (Sandbox Code Playgroud)

  • 对于复选框和单选按钮,您需要使用defaultChecked. (3认同)

Dav*_*und 14

DOM元素具有属性"value",您可以通过以下方式访问该属性:

element.getAttribute('value');
Run Code Online (Sandbox Code Playgroud)

...可能与元素的属性不同 value.

演示

请注意,您可以调用.setAttribute('value', 'new value')哪个实际上会影响form.reset()之后调用的内容.

  • @RightSaidFred我的意思是为什么它现在没有完全映射(在1.7中).它没有映射到1.0,因为没有`prop()`,所以`attr()`被设计为检索DOM属性或内容属性,并且在两者都存在的情况下,属性具有优先权(因为它是更重要).但是,既然我们现在有'prop()`,我希望`attr()`完全映射(最后).`:/` (2认同)

Sha*_*ard 9

输入元素得到的属性称为defaultValue存储原始值.

要通过jQuery访问它,只需使用.prop():

var value = $(this).prop("defaultValue");
Run Code Online (Sandbox Code Playgroud)

更新了jsFiddle - 在更改为"two"之后,上面将返回"one".