2013-06-12 5 views
0

내 jquery 자동 완성 select 함수에서 ui.item.value이 자동 완성도 입력 된 입력란을 채우지 못하게하려면 event.preventDefault() 메서드를 사용해야합니다.jquery event.preventDefault() issue with IE 8

다음
Unexpected call to method or property access 

가 좋은 측정을위한 jQuery를 않습니다 : This 그러나 .preventDefault() 라인은 다음과 같은 오류가 발생합니다 (우리의 대부분의 사용자에 의해 사용중인) IE 8, 크롬에서 잘 작동합니다. 누구든지 IE 8에서이 방법에 대한 해결 방법을 알고 있습니까?

var tempResults = []; 
$(function() { 
    $('#DRMCompanyName').autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       url: '@Url.Action("compSearchByName", "AgentTransmission")', 
       type: 'GET', 
       dataType: 'json', 
       data: request, 
       success: function (data) { 
        tempResults = data; 
        response($.map(data, function (value, key) { 
         return { 
          label: value + " " + key, 
          value: key 
         }; 
        })); 
       }, 
      }); 
     }, 
     minLength: 2, 
     select: function (event, ui) { 
      event.preventDefault(); // <-Causing a problem in IE 8... 
      $('#DRMCompanyName').val(tempResults[ui.item.value]); 
      $('#DRMCompanyName').text(tempResults[ui.item.value]); 

      if ($('#DRMCompanyId').text() == '') { 
       $('#DRMCompanyId').val(ui.item.value); 
       $('#DRMCompanyId').text(ui.item.value); 
      } 
     } 
    }); 
}); 
+2

return false와 동일한 동작입니다. (물론 처리기의 끝에 넣어)? –

+0

그게 효과가있어, 원하면 답을 자유롭게 추가하십시오. – NealR

+0

false를 반환합니다. return event.preventDefault()와 같지 않습니다. event.preventDefault()는 이벤트 전파를 중지합니다. 당신이 그것을 필요로하는지 모르겠지만, FYI –

답변

1

대신 return false을 사용할 수 있지만, 내가 코멘트에 말했듯이 : return false = event.preventDefault() + event.stopPropagation() 그러나 귀하의 경우, 필요에 맞게해야한다.

+0

불행히도 우리 QA는 Internet Explorer 8에서 작동하지 않습니다. 그것은 IE 9에 어제. – NealR