使用Jquery复制多个字段的值

Using Jquery to copy the values of multiple fields

本文关键字:字段 Jquery 复制 使用      更新时间:2023-09-26

我正在尝试编写一个jquery函数,它将指定的字段从当前元素上方的元素复制到当前元素的匹配字段中。具体来说,我有一个asp.net中继器,它正在吐出包含几个字段的表,我想要一个"同上"的函数。不过,我对jquery还是个新手,我在使用它时遇到了一些问题。以下是我目前正在尝试的一些psudo代码,如果你知道的话,可以随意提出一个更好的方法,或者简单地解决这个问题。

function CopyPrevious(sender, rowId) {
    var current = $(sender).closest('#wrappingDiv').find('.containingTable').eq(rowId);
    var previous = $(sender).closest('#wrappingDiv').find('.containingTable').eq(rowId - 1);
    $(current).find('.fieldA').val($(previous).find('.fieldA').val());
}

wrappengDiv只是我放在表周围的一个div,这样我就可以用"最接近"找到它,每个表都有一个类"containingTable"。我把"fieldA"、"fieldB"等作为类名放在字段上,这样我就可以找到它们来获得值。

我遇到的问题是上面第4行的javascript错误:$current没有定义

编辑:根据评论更新了第4行。它现在起作用了。非常感谢。

不能将.val()用作左值。要设置新值,请将其作为参数传递:

$(current).find('.fieldA').val($(previous).find('.fieldA').val());

我不太确定,但这对你有用吗?

function CopyPrevious(sender, rowId) {
    var current = $(sender).closest('.wrappingDiv').find('.containingTable input');  
    var previous = $(sender).closest('.wrappingDiv').prev().find('.containingTable input');
    current.each(function(){
        ($this).val(previous.is('.' + $(this).attr('class')).val());
    });
}