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

DataTable selectBox value값 변경 채택완료

dudqls 2년 전 조회 1,992

</p>

<p>{ data: 'wr_4',</p>

<p>                render : function(data,type,row){</p>

<p>                    var options = ['미정산', '정산대기', '정산완료'];</p>

<p>                    var select = '<select id="wr_4" name="wr_4" onchange= changeFn() value="">';</p>

<p>                    for(var j = 0; j < options.length; j++){</p>

<p>                         var selected = (data === options[j]) ? 'selected' : '' ;</p>

<p>                    select += '<option ' + selected + ' >' + options[j] + '</option>';</p>

<p>                }                    </p>

<p>                    select += '</select>';</p>

<p>                    return select;</p>

<p>                }</p>

<p>            },</p>

<p>

다른 data들은 표기도 잘 되고 변경도 잘 됩니다. 근데 문제는 이 쿼리인데 리스트에 데이터가 많은데 저 selectbox의 value가 변하지않고 1번의 선택된 value로 계속 갑니다ㅠㅠ 1번데이터에 체크된 value는 변경이 가능한데 다른것들은 1번데이터에 체크된 value로만 표기됩니다.. 어떻게 수정을 해야할까요??

EX) 1번데이터 selectBox value = '미정산' 이면 그 밑에있는 데이터들의 selectbox value도 1번데이터 따라 미정산으로 정해집니다..

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

답변 2개

채택된 답변
+20 포인트
toqurk
2년 전
{ data: 'wr_4',
    render : function(data,type,row){
        var options = ['미정산', '정산대기', '정산완료'];
        var select = '<select id="wr_4" name="wr_4" onchange="changeFn()">';
        for(var j = 0; j < options.length; j++){
            var selected = (data === options[j]) ? 'selected' : '' ;
            select += '<option value="' + options[j] + '" ' + selected + ' >' + options[j] + '</option>';
        }                    
        select += '</select>';
        return select;
    }
},

 

보통 onchange 할 경우 함수로 사용하지만 그저 changeFn(this.value) 하시면 알아서 선택된 value 값을 가져오기 때문에 함수 내에서 따로 value 값을 정의 내릴필요없을텐데요..

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

답변에 대한 댓글 2개

d
dudqls
2년 전
그래도 변한건 없네요..
t
toqurk
2년 전
단지 저 소스만으로는 원하시는 답변을 드리는데 한계가 있네요.
링크가 있는것도 아니고 그저 말씀으로만으로는...
다음분에게 패스하도록 하겠습니다.

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

A
2년 전

 

</p>

<p>{

   data: 'wr_4',

   render: function(data, type, row) {

      var options = ['미정산', '정산대기', '정산완료'];

      var select = '<select id="wr_4-' + row + '" name="wr_4" onchange="changeFn()" value="">';

      for (var j = 0; j < options.length; j++) {

         var selected = (data === options[j]) ? 'selected' : '';

         select += '<option ' + selected + ' >' + options[j] + '</option>';

      }

      select += '</select>';

      return select;

   }

}</p>

<p>

 

이렇게 해보시겟나요?

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

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

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

로그인