2012-03-30 2 views
0

지정된 필드를 현재 요소 위에있는 요소에서 현재 요소의 일치하는 필드로 복사하는 jquery funciton을 작성하려고합니다. 특히 내가 거기에 몇 가지 필드가있는 테이블을 뱉어 asp.net 중계기 있고 "위와 같은"기능을 싶습니다. 나는 jquery에 아직도 새롭다. 그리고 나는 그것에 약간의 문제가있다. 여기에 대한 몇 가지 psudo 코드는 현재 내가하려고하는 것에 대해 알고 있거나 더 쉽게이 방법을 사용하도록 고안한다면 더 좋은 방법을 제안 할 수 있습니다.Jquery를 사용하여 여러 필드의 값 복사

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()); 
} 

wrappingDiv 내가 테이블 주위에 넣어 단지 사업부 그래서 나는 "가장 가까운"및 각 테이블 클래스 "containingTable"가 그것을 찾을 수 있습니다. 필드에 클래스 이름으로 "fieldA", "fieldB"등을 넣어 값을 찾을 수 있도록했습니다.

난 데 문제는 위의 4 행에 자바 스크립트 오류입니다 : $ 전류가

편집을 정의되지 않은 : 코멘트 당 4 행을 업데이트했습니다. 이제 작동합니다. 고맙습니다.

+1

그것은 '해야한다 (현재) .find ('fieldA. ') $는 발 ($ (이전) .find ('fieldA. ') 발().).' –

+0

어쩌면에 디버그를 실행 코드를 추가하고 rowId 및 current 값에 대한 감시를 추가하십시오. rowId의 값이 표현식에 의해 반환되는 요소의 수를 초과하는 값으로 설정되는지 확인하십시오. 그리고 위의 사람은 val()을 할당 할 수 없기 때문에 정확합니다. 할당 할 값을 전달해야합니다. –

답변

3

왼쪽 값으로 사용할 수 없습니다. 새 값 대신 인수로 전달 설정하려면 :

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

알아두면 좋지만 현재 $ current가 정의되지 않은 상태입니다. 라인 2가 실패했다고 생각합니다. – William

+0

보시다시피, 코드에는'$ current'가 없습니다. 따라서 오류는 게시 한 코드로 인해 발생하지 않습니다. – ThiefMaster

+0

그게 내 혼란의 일부라는 걸 알아. 클래스 이름이 다른 코드 만 있습니다. 파이어 폭스의 오류 콘솔이 이상한 지 또는 무엇인지 모릅니다. – William

-1

하지 내가 따라 정확하게 확인 만 할 것이다 당신을 위해이 일?

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()); 
    }); 
} 
관련 문제