2011-11-15 4 views
2

다음과 같이 select 요소의 이벤트를 변경하는 간단한 핸들러를 바인딩했습니다.선택한 요소에 대해 Jquery가 실행되지 않음

 $("#ddlPincode").change(function() { 
     alert("Hello"); 
     UpdateMapFromPincode(); 
    }); 

그러나 pincode 드롭 다운을 변경하면 아무 일도 일어나지 않습니다. Firebug에는 오류가 없습니다.

ddlPincode는 비어 있으며 다른 선택 요소 (ddlCity)가 변경되면 요소가 ajax 호출에 의해 추가됩니다. 위 코드는 이벤트 처리기를 바인딩하는 곳으로 처음에는 다른 jquery 코드가있는 $ (function() {}) 내에있었습니다. 그런 다음 서버에서 select를 resultSet에 바인드 한 후 아약스 호출의 성공 여부를 결정합니다. 이것은 또한 아무것도하지 않습니다

+2

맞아요, 당신은 당신의 HTML을 공유해야한다고 생각합니다. – erimerturk

+0

'$ ("# ddlPincode")를 시도하십시오. bind ('change', function() {'다른'change' (좋지 않습니다)) http://elijahmanor.com/differences-between-jquery-bind-vs를 확인하십시오. -live-vs-delegate-vs-on / – KingRider

답변

0

코드가 완벽하게 작동해야합니다. 이 드롭 다운 컨트롤을 다시 만들면 다시 사용할 수 있습니다. 여기 내 테스트 코드입니다 :

HTML

<input type="button" id="btn" value="Fill" /> 
<select id="ddl"></select> 

JS

$(function() { 
    $('#btn').click(function() { 
     for (var index = 0; index < 10; index++) { 
      $('#ddl').append('<option>' + index + '</option>'); 
     } 
    }); 

    $('#ddl').change(function() { 
     alert('changed'); 
    }); 
}); 

코드 : 내가했습니다 때문에 당신이 JQuery와에 전체 HTML 또는 바이올린을 게시해야한다고 생각 http://jsfiddle.net/qGg87/2/

0

나는 우리가 같은 플러그인을 사용하는 경우가 좋은 UI에 대한 또 다른 래퍼를 생성로, 다음 JQuery와 변경 이벤트가 작동하지 않습니다, jqtranform 같이 선택 상자의 예를 향상시키기 위해 다른 JQuery와 플러그인을 사용하는 생각 .

그래서

1

주 ...이 제안을 확인하는 select 요소 필드가 포커스를 잃었을 경우에만 화재 onchange.

$("select").keyup(function() { $(this).trigger('change'); }); 

이 선택은 항상 변경 이벤트를 트리거 것을 보장합니다 : 항상 변경 이벤트를 해고하려면 선택 트리거에게 keyup 이벤트에 change 이벤트가 있습니다. 키 업이 선택 사항을 변경하지 않았기 때문에 값이 실제로 변경되지 않으면 이벤트가 계속 실행됩니다.

관련 문제