例如,我们有 value="wally" 的 html 输入:
<input type="text" value="wally" />
用户更改后如何获取这个旧的“wally”值(使用 jQuery)?
我尝试使用 .attr()、.prop()、.val() 来获取它,但它们都返回用户输入的新值。
您可以在 jsfiddle 上测试代码。尝试更改输入值并单击“获取”蓝色按钮。
PS jQuery 1.7.2 包含在 jsfiddle 中。
例如,我们有 value="wally" 的 html 输入:
<input type="text" value="wally" />
用户更改后如何获取这个旧的“wally”值(使用 jQuery)?
我尝试使用 .attr()、.prop()、.val() 来获取它,但它们都返回用户输入的新值。
您可以在 jsfiddle 上测试代码。尝试更改输入值并单击“获取”蓝色按钮。
PS jQuery 1.7.2 包含在 jsfiddle 中。
defaultValue
底层 DOM 元素的使用:
var input = $(this).closest('form').find('input');
console.log(input[0].defaultValue);
当然,如果您使用的是 jQuery 1.6 或更高版本,您可以使用prop('defaultValue')
它(在早期版本中,attr('defaultValue')
可能有效):
var input = $(this).closest('form').find('input');
console.log(input.prop('defaultValue'));
要记住更改之前的值..
$('input').focusin(function(){
$(this).data('oldValue', $(this).val());
});
并使用..取回它
$('input').change(function(){
var old = $(this).data('oldValue'); //old value
var new = $(this).val(); //new value
})
请参阅此处的工作示例。
使用 element.defaultValue; 其中元素当然是输入字段。如果首先使用 JavaScript 填充元素,只需添加一个新的数据属性。
例如 data-defaultValue='wallie'
您可以将默认值存储在输入元素的数据容器中,然后在用户单击获取按钮时更新该数据值(除非您始终希望访问默认值而不仅仅是最后一个值)。
小提琴:http: //jsfiddle.net/DA67p/4/
您可以使用另一个属性,例如:
<input type="text" value="wally" oldVal="wally" />
然后使用
input.attr('oldVal');
这个问题有足够的答案。但是,如果您需要代码背后或服务器端的旧值,还有另一种解决方法会有所帮助。
将具有相同值的隐藏字段添加到您的页面。因此,如果您需要旧值,请使用隐藏字段的值。这样做,您将在客户端和服务器端都获得旧值。