html datalist 관련 질문입니다.

html datalist 관련 질문입니다.

QA

html datalist 관련 질문입니다.

본문

datalist에서 선택한 값을 

input에 넣고 싶은데 뭐가 잘못된 걸까요?

 

그리고 선택한 옵션의 idx값도 저장하고 싶습니다.

 

 



<input type="text" list="datalist" id="inputdatalist" onchange="getDatalist(this.value)">
<datalist id="datalist">
    <option value="강백호" data-idx="1">강백호</option>
    <option value="서태웅" data-idx="2">서태웅</option>
    <option value="정대만" data-idx="3">정대만</option>
    <option value="송태섭" data-idx="4">송태섭</option>
    <option value="채치수" data-idx="5">채치수</option>
</datalist>
<br>
<br>
<br>
<input type="text" id="list" />
<input type="text" id="idx" />



<script type="text/javascript">
function getDatalist(e){
    var thisIdx = $('#inputdatalist option').index($('#inputdatalist option:selected'));
    var thisData = $('#inputdatalist option').eq(thisIdx).data('idx');

    $('#list').val(thisData);

    console.log(thisData);
}
</script>

이 질문에 댓글 쓰기 :

답변 1


<script type="text/javascript">
function getDatalist(e){
    var thisData = $('#inputdatalist').val();
    $('#list').val(thisData);
    var options = $('datalist')[0].options;
    var val = $('#inputdatalist').val(); 
    for (var i=0;i<options.length;i++){ 
        if (options[i].value === val) { //datalist의 option 중 변경된 input의 값과 일치할 때
            var s_value = document.querySelector("#datalist option[value='" + val + "']").dataset.idx;
            $('#idx').val(s_value);
          break;
       }
    }
}
</script>

 

이런식으로 처리해 주시면 선택된 값을 가져오실수 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,612 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT