2013-02-01 3 views
0

Internet Explorer에서 사용자 정의 함수를 호출하지 않습니다JQuery와 날짜 선택기 onSelect를 내가 날짜 선택기 같은 초기화 한

<input type="text" id="startDate" value="" class="dateField"/>

그 jquery dataTable을 통한 검색을위한 테이블에 있습니다.

크롬에서 잘 작동하지만 IE에서는 작동하지 않습니다. 내 목표는 오늘 데이터가 dataTable으로 채워지는 것입니다. 시작 날짜가 이전 날짜로 바뀌면 onSelectdateChanged 함수를 호출해야합니다. dateChanged 함수는 데이터베이스를 다시 쿼리하지만 더 일찍 날짜를 지정합니다.

IE에서 어떤 일이 발생하면 달력의 날짜 입력란을 선택하면 (좋은) 달력이 나타납니다. 원하는 날짜를 선택하면 달력이 사라지지 않습니다.

문제없이 테스트 함수 호출을했습니다. 차이점은 테스트 함수에는 경고가 있고 dateChanged 함수에는 변수가 초기화되고 호출이 호출된다는 것입니다. 그것은 어떤 종류의 변수를 만들 때까지 잘 작동하는 것 같습니다.

어떤 제안이 도움이 될 것입니다.

UPDATE 여기

함수의 좀 더 내가 전화를 시도하고있다 :

function dateChanged(){ 
     var StartTime = startDate.value; 
    var EndTime = endDate.value; 
    alert("hello"); 
    var cmecProx2 = new cmec(); 
... 
} 

나는 그것 때문에 내가 일하는 회사 인에 공유 할 수있는 대부분의 코드 위의 코드에서 알리미 문에 도달하지 못했습니다.

+1

나머지 코드를 게시하고 가능한 경우 jsFiddle을 만들 수 있습니까? – j08691

+0

당신은 당신이 그 기능에 전혀 몰입하고 있음을 어떻게 알 수 있습니까? startDate와 endDate는 무엇입니까? – jcolebrand

+0

startDate 및 endDate는 입력 필드입니다. 이전에 var 선언 앞에 경고문이 있었기 때문에 나는 알고 있습니다. 내가 크롬처럼 훌륭하지만 IE는 아니지만 왜 그런지 모르겠다. – user1916729

답변

0

일부 브라우저는시기 적절하게 이벤트를 실행하지 않습니다. FF/Chrome에서 잘 작동하는 것은 IE에서 전혀 작동하지 않을 수 있습니다. 시간 제한에 이벤트 코드를 래핑하여 이러한 상황에서 성공을 거두었습니다.

$("#startDate").datepicker({ onSelect: function(){setTimeout(dateChanged, 500);} }); 

은 0.5 초에 의해 dateChanged()의 발사를 연기하며, - 타이밍 문제가있는 경우 - IE를 발사 한 onSelect 이벤트를 실현하기 위해 충분한 시간을 줄 것입니다.

+0

이것은 나에게 이상한 것 같습니다. 이 페이지를 설정하는 방법은 스크립트 태그가 body 태그 안에 있다는 것입니다. '$ (documnet) .ready' 호출 내부에 테이블이 채워지고 datepicker를 포함한 다른 모든 것이 자신의 함수에서 벗어납니다. 귀하의 제안에 코드를 업데이트하고 지금은 페이지를로드하면 dateChanged 함수가 실행됩니다. 이 일이 일어날 것입니까? 나는 지금 매우 혼란 스럽다. – user1916729

+0

btw IE에서 아직로드되지 않고 있지만 이제는 클릭 할 때 datepicker가 전혀 작동하지 않습니다. – user1916729

+0

죄송합니다. 코드를 약간 편집했습니다. 그것은 함수 리터럴로 싸여 져야했습니다 : onSelect : function() {setTimeout (dateChanged, 500);}'. 그것은 즉시 실행되지 못하게해야합니다. – imthepitts

관련 문제