2012-01-18 168 views
0

我试图验证客户端上的下拉列表中选定的索引/值。 我希望在选定的索引是0或它应该在后面的代码执行SelectedIndexChandged方法,提醒功能..在更改后未触发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%>'); 

的错误是:

的Javascript运行时错误:所需的对象。

注意:我在应用程序中有一个母版页,并且DDL位于内容页面中。

任何人都可以帮助我..感谢提前。

回答

0

您必须分配下拉的客户端更改事件。在你的代码背后,有这样的代码:

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

不要手动覆盖ASP.NET的Postback东西让它处理你添加的附加代码。

+0

嗨,感谢您的回答。但是,请你详细说明一下。后面代码中的OnSelectedIndexChanged()不会被触发,我想在indexManager大于0时被触发。否则不会。 谢谢。 :) – user1156597 2012-01-19 13:26:35

+0

标签中有'AutoPostBack =“True”'。 – 2012-01-19 13:28:12

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,''); 
     } 
} 
相关问题