使用其中一个属性(jQuery)设置文本框的值

时间:2010-05-06 13:28:26

标签: jquery html custom-attributes textinput revert

我有一堆输入文本框,其ORIGINAL属性设置为初始值,因此当用户更改文本框值时,jQuery可以突出显示已更改的项目(通过将文本框的当前值与ORIGINAL进行比较)属性的值)

我现在尝试做的是为用户提供一个按钮,他们可以点击这些按钮,根据每个文本框的ORIGINAL属性值将所有文本框恢复为原始值。

实施例

$('input[type=text]').val($(this).attr('original'));

以上不起作用,我不明白为什么。

4 个答案:

答案 0 :(得分:3)

使用each

$('input:text').each(function() {
    $(this).val($(this).attr('original')); // or this.value = $(this).attr('original');
});

您不能使用单行,因为$('input[type=text]').val()将仅返回匹配集合中第一个元素的值。 $(this)并不代表您认为它在您的示例中的作用:

$('input[type=text]').val($(this).attr('original'));

它实际上是指当前的范围。当您使用each迭代集合时,jQuery将调用它的回调并将迭代中的当前元素指定为当前作用域($(this)this)。

作为附注,input:text是一种更漂亮,更简洁的说法input[type=text]

答案 1 :(得分:0)

这样的事情:

$('input[type=text]')each(function(){$(this).val($(this).attr('original'));}

答案 2 :(得分:0)

您可以在任何输入上调用.defaultValue以获取其原始值

答案 3 :(得分:0)

val接受一个功能:

$('input:text').val(function () {
    return $(this).attr('original');
});