如何访问 js/jquery 中的用户控件值

how to access usercontrol value in js/jquery

假设我创建了一个包含两个文本框和一个按钮的用户控件

 --Start UserControl UserDetails--
 <asp:TextBox runat="server" id="txtName"></asp:TextBox>
 <asp:TextBox runat="server" id="txtAddress"></asp:TextBox>
--End UserControl UserDetails-

在 aspx 中如果我使用相同的用户控件,

<uc1:UserDetails runat="server" ID="UserDetails1" />
  1. 如何使用用户控制 ID UserDetails1 访问 txtName
  2. 如何使 $('#UserDetails1').val() 变为 txtName 的 return 值?

在文本框中使用数据键。

      --Start UserControl UserDetails--
     <asp:TextBox runat="server" id="txtName" data-key="name"></asp:TextBox>
     <asp:TextBox runat="server" id="txtAddress" data-key="address"></asp:TextBox>
    --End UserControl UserDetails-

<uc1:UserDetails runat="server" ID="UserDetails1" data-usercontrol = "UserDetails1" />

在jquery,

$("[data-usercontrol='UserDetails1']").find("[data-key='name']").val();
$("[data-usercontrol='UserDetails1']").find("[data-key='address']").val();

您可以使用 ID 选择器。但由于您使用了 asp.net,它可能会在 HTML.

中以不同的 id 呈现

希望对您有所帮助!

试试这个,使用 Jquery

$("[id$='txtName']").val();
$("[id$='txtAddress']").val(); 

在你后面的用户控制代码里加一个public 属性给你TextBox就行了

public TextBox Name
{
    get { return txtName; }
    set { txtName = value; }
}

现在您可以像这样访问您的 TextBox

<uc1:UserDetails runat="server" ID="UserDetails1" />

    <script>
        $(function () {
            $("#<%= UserDetails1.Name.ClientID%>").val("set you text here");
            //or
            var name = $("#<%= UserDetails1.Name.ClientID %>").val();
        });
    </script>

从开发人员工具中复制特定文本框的 ID,然后像下面那样使用该 ID

var textLength = $("#ContentBody_ucMFA1_txtACode").val().length;