asp.net控制值不传递给javascript函数

时间:2015-12-17 08:17:32

标签: javascript jquery asp.net

我的问题是:asp.net控制值不传递给javascript函数

Asp.Net代码

<asp:TextBox ID="txtsubcategorycodeid" class="form-control " runat="server" placeholder="Sub Category Code ID"></asp:TextBox>
<asp:TextBox ID="txtsubcategoryname" class="form-control " runat="server" Height="25px" placeholder="Sub CategoryName In Letter"></asp:TextBox>
<asp:DropDownList ID="ddcategorycodeid" runat="server">
<asp:ListItem>---Select---</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="ddstatus" runat="server">
<asp:ListItem>---Select---</asp:ListItem>
<asp:ListItem>Active</asp:ListItem>
<asp:ListItem>In-Active</asp:ListItem>
</asp:DropDownList>
<asp:Button ID="btnSave3" runat="server" Text="Button" OnClientClick="return btnSave3_onclick()" />

JavaScript代码

var txtsubcategorycodeid = $("#txtsubcategorycodeid").val();
var txtsubcategoryname = $("#txtsubcategoryname").val();
var ddcategorycodeid = $("#ddcategorycodeid").val();
var ddstatus = $("#ddstatus").val();

当我调用它时,它显示未定义

此代码以简单形式工作,但无法在模板上集成,我将此代码放入集成模板。         它不起作用。

    This Asp.Net Code in content placeholder. 
    If I use input html control then its works.

1 个答案:

答案 0 :(得分:1)

如果您使用的是ASP.NET 4或更高版本,则可以向控件添加ClientIDMode属性,这不会改变您的ID: -

<asp:TextBox ID="txtsubcategorycodeid" class="form-control " runat="server" 
     placeholder="Sub Category Code ID" ClientIDMode="Static" ></asp:TextBox>

在这种情况下,如果执行此操作,您将获得正确的结果: -

var txtsubcategorycodeid = $("#txtsubcategorycodeid").val();

如果你有较低版本的ASP.NET(&lt; 4),你可以使用ClientID属性来获取这样呈现的实际ID: -

var txtsubcategorycodeid = $("#<%= txtsubcategorycodeid.ClientID %>").val();