2017-12-20 13 views
0

가격 슬라이더가 있으며 사용자가 가격 슬라이더를 변경할 때 내용을 다시로드하려고합니다. 이벤트가 해고되고로드 기능이 유효하게 그러나 때 오류 여기JQuery Slider 이벤트 변경 및로드

TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement. 

내 코드

$(".range-filter").on('slidechange', function(){ 

    var formdata = $("#filterList").serializeObject(); 
    var attrfilter = $("#filterList").find('input[name^=attrfilter]:checked'); 
    alert("yey"); 

    $("#productList").load(
     url, 
     { 
      formdata: formdata, 
      attrfilter: attrfilter 
     }, 
     function(responseText, statusText, xhr){ 
      if(statusText == "success") 
       return; 
      if(statusText == "error") 
       return; 
     } 
    ); 
}); 

가 왜 충돌하게 않습니다되어 다음과 같은거야? 대신 정상적인 아약스 함수를 사용해야합니까?

+0

plunkr을 만들 수 있습니까? –

답변

0

로그 formdataattrfliter은 Ajax 호출의 데이터로 전송할 오브젝트 (로드 기능의 두 번째 매개 변수)에 지정할 수있는 유효한 값인지 확인합니다.

위의 내용이 문제가되는 것 같습니다. attrfilter은 jQuery DOM 요소 객체이며, true 또는 false이 아니며 Ajax 호출을 위해 데이터를 전달하려고한다고 가정합니다.

당신이 할 수있는 것은 :

var attrfilter = $("#filterList").find('input[name^=attrfilter]').prop("checked") 
// will return true or false 

또한 참조 :

TypeError: stepUp called on an object that does not implement interface HTMLInputElement

이 같은 값을 매핑 잊어 버린 예 TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement

0

:

 attrfilter = $.map(attrfilter, function(element) 
    { 
     var start = element.name.indexOf('[')+1; 
     var end = element.name.indexOf(']'); 
     return {id: element.name.substring(start, end), value: element.value}; 
    });