2013-07-19 45 views
0

我的下拉(填充的objectDataSource):不能得到下拉選擇的值與JavaScript?

<asp:DropDownList runat=server ID="ddlUserTypes" DataSourceID="odsUserTypes" AppendDataBoundItems=true DataTextField="UserType" DataValueField="Usertype"> 
<asp:ListItem Value="">-Please select one-</asp:ListItem> 
</asp:DropDownList> 

JavaScript函數得到下拉列表中選擇的值:

<script type="text/javascript" language="javascript"> 
    var notRegistered = false; 
    var email = ''; 
    var userType = document.getElementById("ddlUserTypes"); 
    var pow = userType.options[userType.selectedIndex].value; 
    function PreRegister() {debugger; 
     if (notRegistered) { 
      location.href = '/Register.aspx?pageid=<%= ConfigHelper.RegistrationPageId %>&Email=' + encodeURIComponent(email)+'&asd='+encodeURIComponent(pow); 
      return false; 
     } 
     return true; 
    } 
</script> 

但這不是工作pow只是不斷返回undefined?這可能是因爲用戶類型似乎沒有分配給它,因爲它保持爲空?有人知道爲什麼這個代碼不起作用嗎?

+0

'ddlUserTypes'不是clientId。 – gdoron

+0

你是什麼意思?我是一個javascript新手 – Srb1313711

+0

請在下面閱讀我的答案。 – gdoron

回答

1

使用此我希望它的工作。

var e = document.getElementById("ddlUserTypes"); 
var strUser = e.options[e.selectedIndex].value; 
1

正如gdoron提到,ASP.Net將使你的其他的東西下拉比你的ID參數設置爲您<asp:DropDownList>,這就是爲什麼你的JS ISN的HTML ID找不到它。

什麼可能最簡單的是分配一個類到你的下拉列表中,然後在你的JS中,按類分配元素。

+0

你怎麼能按照目標來定位? – Srb1313711

+0

document.getElementsByClassName,儘管您可能希望使用jQuery進行研究,因爲它使這種事情變得更加方便。 – eliah

+0

嘗試按類定位,但仍然未定義 – Srb1313711