【发布时间】:2023-03-10 19:19:01
【问题描述】:
我正在加载一个文档准备好的函数。这一切都工作一次。必须刷新页面才能再次工作。
$(document).ready(function () {
function resetChosen() {
$('.chosen').val(' ').trigger('chosen:updated');
alert('how many times will this work?');
}
$('#submitter').on('click', function (clickEvent) {
setTimeout(resetChosen, 500);
})
})
我基本上是在等待 500 毫秒后尝试使用 .chosen 类重置表单字段。警报用于调试。
它有效,但只有一次。为什么?
谢谢!
更新:更多细节
我查看了 HTML,这个按钮在 UpdatePanel 中...
<form id ="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" EnablePageMethods="true" />
<asp:Timer ID="Timer1" runat="server" Interval="10000" OnTick="Timer1_Click" Enabled="true" />
<div class="col-10 topRow">
<div class="dispatchContainer">
<div class="col-1">
<div class="dispatchBtnBox" style="display: block">
<asp:UpdatePanel ID="UpdatePanel100" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="True">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="submitter" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Button runat="server" ID="submitter" class="submitter" Text="Notify" OnClick="submitter_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
...大概是为了防止页面在被点击时刷新。是否需要将此功能添加到页面请求管理器中?
我已经更新了我的问题的标签。
谢谢!
更新 2:解决方案:
我在点击事件后面的代码中使用 ScriptManager 控件注册了一个脚本块。
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "submitterReset", "submitterReset", false);
谢谢!
【问题讨论】:
-
它似乎对我有用jsfiddle.net/s6tcrhjw/6
-
是的,它正在工作!那么问题是什么。如果可能,请发布一些详细信息。
-
@RezaMamun 谢谢,我不确定还有哪些细节会有所帮助。基本上,当我点击 ID="submitter" 的按钮元素时,这个函数应该每次都会触发,但它只会触发一次,直到我刷新页面。 val reset 和 alert 都只在每次页面加载后触发一次。我将在上面更新一些 HTML...
-
@RezaMamun 我相信我可以使用 ScriptManager 控件并注册启动脚本块。我会在上面更新...
标签: jquery asp.net scope updatepanel nested-function