테스트 사이트 - 개발 중인 베타 버전입니다

on change 이벤트의 배열 순번 불러오기 채택완료

공부중입니다 4년 전 조회 1,475

테이블 입력에서 input type="text" name= "arr[]" 형식으로 배열로 받아오고 

자바스크립트에서 $(document).on("change",('input[name="doc_sub[]"]').value, function(){ 이런식으로 값이 변할때마다 이벤트를 발생시키려고합니다.

테이블의 생성을 클릭이벤트로 하여서 클릭할때마다 증가되거나 삭제되게 코딩하였습니다.

첫번째 테이블 클릭 시

doc_sub[][0] -> [0] 값을 받아오고

두번째 테이블 클릭 시

doc_sub[][1] -> [1] 값을 받아와야 하는데

</p>

<p>var i = 0;</p>

<p>    $(document).on("change",('input[name="doc_sub[]"]').value, function(){</p>

<p>        var length = $('input[name="doc_sub[]"').length;</p>

<p>        alert(length);</p>

<p>        alert(i);</p>

<p>        var sub = $('input[name="doc_sub[]"')[i].value;</p>

<p>        alert(sub);</p>

<p>        var arr = sub.split("|");</p>

<p>        $("input[name='doc_sub[]']")[i].value = arr[0];</p>

<p>        $("input[name='doc_code[]']")[i].value = arr[1];</p>

<p>        i++;</p>

<p>    });</p>

<p>

 

이런식으로 만들었더니 순차적으로는 동작하는데 그 후 수정이 불가능 하게 되더라구요 ...

 

클릭 시 그 테이블의 배열만 건들수 있는 방법이있을까요?

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
4년 전

한번 작성해 본 코드인데.. 동작될지는 잘 모르겠습니다.

</p>

<p>$(document).on("change", 'input[name="doc_sub[]"]', function() {    

    var sub = $(this).val();    

    var arr = sub.split("|");

    $(this).val(arr[0]);</p>

<p>

    $(this).parent().find("input[name='doc_code[]']").val(arr[1]);    

});</p>

<p>

or

$(document).on("change", 'input[name="doc_sub[]"]', function() {

    var sub = $(this).val();

    var arr = sub.split("|");

    $(this).val(arr[0]);</p>

<p> </p>

<p>    var idx = $(this).index();

    $("input[name='doc_code[]']")[idx].val(arr[1]);

});

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

공부중입니다
4년 전
답변 감사드립니다.~
doc_sub는 정상작동하는데 doc_code는 0번 테이블만 작동하네요 ㅠㅠ
idx 값이 계속 0으로 ㅎㅎ

배열하나더 추가해서 값을 저장시켜놓 방법으로 해결하였습니다.

감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인