我使用的是 Visual Studio 2012。它包含以下文本框:
<asp:TextBox ID="txtdate" runat="server" OnTextChanged="txtdate_TextChanged" AutoPostBack="true"></asp:TextBox>
<img src="../img/scw.gif" title='Click Here' alt='Click Here' onclick="scwShow(scwID('ContentPlaceHolder1_txtdate'),this); setcalender();" />
单击图像后,将打开日历,用户可以在其中选择日期。现在,如果我通过键入手动输入日期,然后按 Enter 键,则会调用 txtdate_TextChanged
方法,但必须使用日历来完成更改。所以我想知道为什么以及浏览器/服务器如何能够检测到 JavaScript 正在完成更改。
有什么方法可以在 JavaScript 中调用 txtdate_TextChanged
方法吗?
提前致谢。
最佳答案
正如您所说,您单击图像而不是文本框,这意味着文本框永远不会成为焦点,并且如果与服务器端函数一起调用,JavaScript 函数不会触发服务器端函数,例如
<asp:Button runat ="server" ID="btn" OnClick="btn_Click" OnClientClick="return check();" />
在 javascript 函数 check() 中进行验证并返回 true。
因此,您必须在日历的 onclick 事件上使用 JavaScript 执行此操作
__doPostBack("txt_sssn_dt", "TextChanged");
关于javascript - 为什么通过 Javascript 更改文本框的文本不会触发 Asp .Net 中的 OnTextChanged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41674318/