gpt4 book ai didi

asp.net - 为什么我无法在此处的标记中添加我的文本框的 clientId 以便我可以使用 jQuery 找到它?

转载 作者:行者123 更新时间:2023-12-01 01:11:46 24 4
gpt4 key购买 nike

我只是尝试为客户端单击事件传递一个文本框“txtPersonId”的客户端 ID,以便我可以遍历该文本框控件并将其 jQuery 包装器传递给 loadePerson() 函数。

这就是我在 aspx 标记中对其进行标记的方式:

<asp:Button ID="btnSearch" runat="server" Text="ARA" OnClientClick="loadPerson(jQuery('#<%=txtPersonId.ClientID %>'))"/>

但是当我渲染它时,

<%=txtPersonId.ClientID %>

占位符保持原样,不会被渲染控件的客户端 ID 替换。

知道为什么会发生这种情况以及我应该如何克服它吗?

最佳答案

当我遇到这样的问题时,我将整个表达式括在括号中并将结果构建为字符串。我认为这是因为解析器无法识别嵌入在字符串属性中的渲染 block 语法。

 <asp:Button ID="btnSearch" runat="server" Text="ARA"
OnClientClick='<%= "loadPerson(jQuery(\"#" + txtPersonId.ClientID + "\"))" %>' />

我很早就开始将我的 javascript 与我的标记完全分开,所以我可能对确切的细节有点模糊。如果您想将 javascript 与标记分开,您可以在脚本 block 中添加具有显式或相对 DOM 引用的处理程序。使用匹配 id 的“ends with”选择器可以消除查找显式 id 的需要,尽管您也可以这样做 - 下面的示例显示了两种样式。

 <script type="text/javascript">
$(function() {
$('#' + '<%= btnSearch.ClientID %>').click( function() {
loadPerson( $('input[id$=txtPersonId]') );
});
});
</script>

关于asp.net - 为什么我无法在此处的标记中添加我的文本框的 clientId 以便我可以使用 jQuery 找到它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com