如何使用JQuery触发Asp:HiddenField onvaluechange事件
How to trigger Asp:HiddenField OnValueChanged event using JQuery?
我有这个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中,使用属性选择器:
$('input[id$=AuxHiddenField]') // id ends with AuxHiddenField
我个人不喜欢<%= Field.ClientID %>
的方式这样做,因为如果你的javascript是在一个单独的文件,它不会被asp.net处理。
进一步阅读:
- <
- ClientID属性/gh>
- 关于asp.net 4中ClientID模式的所有信息
用javascript编程改变一个值不会触发change
事件,你必须手动触发它:
$('input[id$=AuxHiddenField]').val("any val").change(); // or .trigger('change');
关于ValueChanged事件
遗憾的是,HiddenField没有AutoPostBack
属性(毕竟是有意义的)。
我认为您必须在更改值后以编程方式触发回发。
如果使用ajax,请使用__doPostBack()
,否则,请使用document.forms[0].submit()
提交表单。
另一个解决方案是将HiddenField替换为一个不可见的TextBox:
<asp:TextBox runat="server" ID="mytextbox" Value="" Style="display:none;" AutoPostBack="true" OnTextChanged="mytextbox_TextChanged"></asp:TextBox>
以编程方式更改该值将引发事件服务器端。
请注意,为了隐藏文本框,你不应该使用Visible="false
,因为它不会在最终的html中呈现,使用Style="display:none;"
属性(css)。
查找值:
$('#<%= AuxHiddenField.ClientID %>').val("Mohaha!!");
然而,用JavaScript设置一个值永远不会触发一个更改事件,我不认为隐藏支持....
相关文章:
- HiddenField从服务器更改的javascript值在客户端确认
- 无法将字符串数组分配给asp:HiddenField
- hiddenfield的值显示得非常缓慢
- 在服务器端的javascript之后读取hiddenfield的值
- 如何将这个 Javascript 函数返回放在 HiddenField c# 对象中
- 从 JavaScript 中设置 hiddenfield 值,但不在代码后面获取它
- asp.net hiddenfield.value 不是由 JavaScript 更新的
- Hiddenfield必须在每次点击时进行更改
- 使用 HiddenField 为 Javascript 赋予价值
- ASP.Net在UpdatePanel hiddenField上获取ScriptManager.RegisterClie
- 如何使用javascript或jquery在listview中设置hiddenfield的值
- 使用Javascript更改HiddenField值在C#代码绑定中没有更改
- 多编辑/保存网格(hiddenfield+javascript)
- 在javascript中检索hiddenfield值时出现问题
- 使用c#声明HiddenField'值&Javascript变量
- 在Javascript中设置值后,VB HiddenField会丢失值
- 使用jquery访问hiddenfield's值设置时出现错误
- 如何使用JQuery触发Asp:HiddenField onvaluechange事件
- 未捕获的类型错误:不能设置属性'innerHTML'为hiddenfield设置innerhtml时为n
- HiddenField值不会被移除