gpt4 book ai didi

javascript - 如何触发Asp :HiddenField OnValueChanged event using JQuery?

转载 作者:数据小太阳 更新时间:2023-10-29 04:57:41 26 4
gpt4 key购买 nike

我有这个 asp:hiddenField 控件:

<asp:HiddenField ID="AuxHiddenField" runat="server"/>

我想使用 Jquery 触发其(服务器端)值更改事件:

Protected Sub AuxHiddenField_Changed(ByVal sender As Object, ByVal e As System.EventArgs) Handles AuxHiddenField.ValueChanged
'some logic here
End Sub

我试过:

$('#AuxHiddenField').val("Mohaha!!");   

Jquery 找不到该元素并且没有任何反应。我该如何解决这个问题?

最佳答案

ASP.net 使用算法生成ClientID .默认情况下,它基于命名容器的控件被连续包含。

很可能生成的 HTML 中的 ID 不是 AuxHiddenField但像 ctl00_AuxHiddenField .

要么设置ClientIDMode :

<asp:HiddenField ID="AuxHiddenField" runat="server" ClientIDMode="Static" />

或者在 jquery 中,使用 attirute selectors :

$('input[id$=AuxHiddenField]')  // id ends with AuxHiddenField

我个人不喜欢 <%= Field.ClientID %>这样做的方式是因为如果您的 javascript 位于单独的文件中,则它不会被 asp.net 处理。

进一步阅读:


使用 javascript 以编程方式更改值不会触发 change事件,你必须手动触发它:

$('input[id$=AuxHiddenField]').val("any val").change(); // or .trigger('change');

在行动 here .


关于 ValueChanged 事件

不幸的是,HiddenField 没有 AutoPostBack属性(property)(毕竟有意义)。
我认为您必须在更改值后以编程方式触发回发。
如果您使用的是 ajax,请使用 __doPostBack() ,否则,请提交您的表格 document.forms[0].submit() .

另一种解决方案是用不可见的 TextBox 替换 HiddenField:

<asp:TextBox runat="server" ID="mytextbox" Value="" Style="display:none;" AutoPostBack="true" OnTextChanged="mytextbox_TextChanged"></asp:TextBox>

以编程方式更改值将在服务器端引发事件。
请注意,为了隐藏文本框,您不应使用 Visible="false因为它不会在最终的 html 中呈现,所以使用 Style="display:none;"属性 (css)。

关于javascript - 如何触发Asp :HiddenField OnValueChanged event using JQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8327359/

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