如何使用javascript ClientID获取下拉列表的文本

时间:2013-05-11 13:37:30

标签: c# asp.net

我在更新面板中有一个gridview,它有一个dropdownList。 我想访问值选择项目以进行验证,但会收到错误。

我曾经设法让它正常工作,首先获取gridview的id,其中存在下拉列表,而不是使用dropdownList clientID对其进行后缀,但丢失了它,现在似乎无法完成它。

我从下拉列表的clientId中查看生成的HTML源代码。

('<%= drpLstId.ClientID %>给我错误 drpLstId在当前上下文中不存在

这是在生成aspx页面后为下拉列表生成的HTML。

<select name="ctl00$viewMain$grdView$ctl01$ddlNew" id="ctl00_viewMain_grdView_ctl01_ddlNew" class="ddl" style="width:70px;">
        <option value="0">Select</option>
            <option value="1">Option 1</option>
            <option value="2">Option 3</option>
            <option value="3">Option 3</option>
 </select>

这就是我所做的

 function validate()
    {
      var drpDownList= document.getElementById('ctl00_viewMain_grdView_ctl01_ddlNew');
       var drpDownListValue = drpDownList.options[drpDownList.selectedIndex].Text;

       alert(drpDownListValue );

    }

但这会在警告框

中出现错误undefined

2 个答案:

答案 0 :(得分:1)

您需要使用innerHtml代替以下文字:

var drpDownListValue = drpDownList.options[drpDownList.selectedIndex].innerHTML;

答案 1 :(得分:1)

您可以通过从serverside

注册js代码来获取控件ID
RegisterStartupScript("var drpDownList = " + drpLstId.ClientId);

然后在客户端,您可以获得内部HTML

var drpDownListValue = drpDownList.options [drpDownList.selectedIndex] .innerHTML;

查看HTML并获取客户端ID然后将其硬编码到代码中似乎不是一个好主意。