2012-01-18 3 views
0

선택한 인덱스/값에 대해 클라이언트 측의 드롭 다운 목록의 유효성을 검사하려고합니다. 내가 선택한 인덱스가 0 또는 그 뒤에있는 코드에서 SelectedIndexChandged 방법을 실행해야 할 때 알려주는 기능 ..Onchange 후 SelectedIndexChanged 이벤트가 발생하지 않습니다.

나는 다음과 같은 코드를 작성했습니다

..

function validateDropDown() { 
     var indexService = document.getElementById('<%= ddlService.ClientID>').selectedIndex; 
     var indexTower = document.getElementById('<%= ddlManager.ClientID>').selectedIndex; 
     if (indexTower == 0) { 
      document.getElementById('<%= ddlService.ClientID%>').disabled = true; 
      document.getElementById('<%= ddlDate.ClientID%>').disabled = true; 
      alert("Please select a Tower"); 
      return false; 
     } 
     else{ 
      document.getElementById('<%= ddlService.ClientID%>').disabled = false; 
      document.getElementById('<%= ddlDate.ClientID%>').disabled = false; 
      _doPostBack('<%= ddlManager.ClientID%>'); 
     } 
} 

이 줄은 던지고 원하는 런타임 오류.

_doPostBack('<%= ddlManager.ClientID%>'); 

오류는 다음과 같습니다

자바 스크립트 런타임 오류 : 개체가 필요합니다.

참고 : 응용 프로그램에 마스터 페이지가 있으며 DDL이 콘텐츠 페이지에 있습니다.

누구나 도와 줄 수 있습니다 .. 감사합니다.

답변

0

드롭 다운의 클라이언트 측 변경 이벤트를 할당해야합니다. 코드 뒤에 다음과 같은 코드가 있어야합니다.

ddlService.Attributes["onchange"] = "validateDropDown();"; 

ASP.NET의 포스트 백 기능을 수동으로 덮어 쓰지 않아도 추가 코드가 처리됩니다.

+0

에게 답변 감사합니다 안녕하세요 도움이 될 것입니다. 그러나 좀 더 자세하게 알려주십시오. 코드 배후의 OnSelectedIndexChanged()가 실행되지 않고 indexManager가 0보다 큰 경우 해고되기를 원합니다. 그렇지 않은 경우. 감사합니다. . :) – user1156597

+0

태그에'AutoPostBack = "True"가 있습니다. –

0

그것은 당신

function validateDropDown() { 

    var indexService = document.getElementById('<%= ddlService.ClientID>').selectedIndex; 
    var indexTower = document.getElementById('<%= ddlManager.ClientID>'); 
     indexTower =indexTower.selectedIndex 

     if (indexTower =="0") { 
      document.getElementById('<%= ddlService.ClientID%>').disabled = true; 
      document.getElementById('<%= ddlDate.ClientID%>').disabled = true; 
      alert("Please select a Tower"); 
      return false; 
     } 
     else{ 
      document.getElementById('<%= ddlService.ClientID%>').disabled = false; 
      document.getElementById('<%= ddlDate.ClientID%>').disabled = false; 
      __doPostBack(indexTower.id,''); 
     } 
} 
관련 문제