2017-10-26 11 views
1

안녕하세요 all inputs 입력 요소에 문제가 있습니다. 입력 요소가 있다고 가정 해 봅시다. 그리고 html 및 jquery 자동 완성 (입력 값)

$(input).autocomplete({ 
    ..., 
    source: function(request, response) { ... }, 
    select: function(e, ui) { 
     var keyid = ui.item.iddo; 
     var keylab = ui.item.label; 
     $(this).attr('data-id', keyid); 
     $(this).attr('value', keylab); 
    } 
}); 

난 제대로 잘 살고있는 List 데이터 ID에서 요소를 선택하는 경우, 및 값이 너무하고 텍스트 입력 값에 대응하는 정확한 하나, 그것에 JQuery와 자동 완성 기능을 사용한다.

이제 다른 요소가 있는데이를 클릭하면 해당 입력의 데이터 ID 속성과 해당 값을 변경해야합니다. 나도 자동 완성 제거하려고 :

$(document).on('click', '.anchor', function(evt){ 
    evt.preventDefault(); 

    var ele_link = $(this); 
    var datain = ele_link.data('input'); 
    var dataid = ele_link.data('id'); 
    var dataval = ele_link.text(); 
    var target_input = $('#' + datain); 

    //try to remove autocomplete 
    if($(target_input).attr('autocomplete')) { 
     $(target_input).autocomplete('destroy'); 
     $(target_input).removeAttr('autocomplete'); //not actually needed 
    } 

    if(target_input.length) { 
     target_input.attr('data-id', dataid); 
     target_input.attr('value', dataval); 
    } 
}); 

을 그리고 그것은 작동 : 입력 데이터-ID가 정확하고도 값이 변경, 자동 완성 기능도 제거됩니다.

입력란의 텍스트의 변경되지 않은으로 유지됩니다. 값이 올바르게 변경된 경우에도 이전 항목 (자동 완성 상자에서 항목을 선택한 경우)입니다.

자동 완성을 제거하는 주된 이유는 동일한 동작을했기 때문 이었지만 제거하면 문제가 해결되지 않았습니다.

어떻게해야합니까?

+0

'target_input.val (dataval)' – Mouser

+0

OKOK는 확인 작동, 당신에게 Mouser 감사합니다. Id'like는 이유를 알고 있습니다. attr (value) 값을 적절하게 변경합니다 ... aaa 및 prop ('value')도 작동합니다. 또한 답변으로 게시, 나는 최고로 받아 들일거야 –

답변

0

사용 jQuery의 val 대신 attr 값 :

if(target_input.length) { 
    target_input.attr('data-id', dataid); 
    target_input.val(dataval); 
}