文本框id在javascript中不可访问

文本框id在javascript中不可访问,javascript,c#,Javascript,C#,我把这个文本框放在一个数据列表里 tr> <td><h5>Email</h5> <asp:TextBox ID="tb_email" CssClass="tb_orderByPhn" runat="server" /> </td> </tr> tr> 电子邮件 还有一个按钮可以调用javascript作为 <tr> <td> <asp:LinkButton id="

我把这个文本框放在一个数据列表里

tr>
    <td><h5>Email</h5> <asp:TextBox ID="tb_email" CssClass="tb_orderByPhn" runat="server" /> </td>
</tr>
tr>
电子邮件
还有一个按钮可以调用javascript作为

  <tr>
    <td> <asp:LinkButton id="btn_order"  class="btn btn-lg btn-block btn-success btn_rad " OnClick="btn_order" OnClientClick=" return validate_order()"   runat="server" >Order now <i class=" glyphicon glyphicon-chevron-right  " ></i></asp:LinkButton></td>
</tr>

现在点菜
在上面的按钮上,单击我正在调用一个javascript函数。到目前为止,这很好,但它无法识别文本框id。为什么

 function validate_order() {

    alert("ok");
    var name = document.getElementById('<%=tb_email.ClientId%>').value;
    alert(name);

}
函数验证\u顺序(){
警报(“正常”);
var name=document.getElementById(“”).value;
警报(名称);
}
它给出错误:当前上下文中不存在名称“tb_email”。

请尝试以下代码:

function validate_order() {

  alert("ok");
  var name = document.getElementById('tb_email.'+'<%=ClientId%>').value;
  alert(name);

}
函数验证\u顺序(){
警报(“正常”);
var name=document.getElementById('tb_email.'+'').value;
警报(名称);
}

您使用的是哪个Asp.Net版本? 如果ASP.NET>=4.0,请在ASP.NET文本框上使用clientMode=“Static”,并尝试一下。因为ASP.NET在将控件呈现给客户端时,会通过将父命名容器与控件的ID值连接起来等方式更改控件ID


请参阅:

您使用的是哪个Asp.Net版本?如果.NET>=4,则在asp.NET文本框上使用clientMode=“static”,并尝试一下。因为asp.net在将控件ID呈现给客户端时可能会更改控件ID,并附加一些参考ID等。请在浏览器中检查页面呈现的html,并查看它正在创建的ID。哇..ID显示为
ccont\u Dl\u products\u tb\u email\u 0