【发布时间】:2016-04-01 23:07:43
【问题描述】:
在我的页面上,我有:
-
txtCalendar,一个用于输入日期的asp:TextBox,附带一个JQuerydatepicker -
btnSave,asp:Button用于保存表单 -
btnAdd,asp:LinkButton,为页面的不同部分打开一个新表单。
当点击任一按钮时,txtCalendar_TextChanged 被调用在btnSave_Click 或btnAdd_Click 函数被调用之前。 txtCalendar_TextChanged 在单击这些按钮时根本不应该被调用 - 在 之前或 之后。
可能是 JQuery datepicker 以某种方式导致了这种情况 - 当我注释掉实例化 datepicker 并将其绑定到文本框的代码时,txtCalendar_TextChanged 被 不 调用。 p>
另外,我已经验证了:
- 即使我在回发后阻止
$(function() {}脚本运行,单击按钮时仍会调用txtCalendar_TextChanged方法 - 我没有任何 JavaScript 来查找 ID
#btnSave或#btnAdd或任何可以匹配/响应这些 ID 的内容 -
senderfortxtCalendar_TextChanged是我的txtCalendar文本框 -
eventargsfortxtCalendar_TextChanged为空(不确定这是否重要) -
txtCalendar中的文本实际上并没有改变(在 UI 中进行了视觉验证,而不是通过在后端添加代码来检查) -
txtCalendar_TextChanged在我删除OnTextChanged='txtCalendar_TextChanged'时不被调用(所以 - 它是被txtCalendar调用,不知何故......) -
即使我删除了
AutoPostBack='true',也会调用txtCalendar_TextChanged -
即使我通过注释掉
Handles btnSave.Click(两个按钮在aspx.vb 中使用Handles btnX.Click而不是在aspx 中的OnClick="btnX_Click")禁用btnSave_Click功能,也会调用txtCalendar_TextChanged。 -
Page_Load在txtCalendar_TextChanged之前被命中,但第一次检查是If(Page.IsPostBack) Then Exit Sub-Page_Load的其余部分没有运行(所以 - 其他后端函数没有被命中)
【问题讨论】:
标签: javascript jquery asp.net .net vb.net