onblur在文本框更新之前被调用

时间:2016-11-10 11:47:44

标签: javascript jquery asp.net datepicker

我有一个日期文本框,因此用户可以使用datepicker选择日期。

enter image description here

我想知道日期是否已更改,因此我在文本框中添加了onblur

<asp:TextBox runat="server" ID="txtDate" CssClass="dateonly" Width="80px" onblur="CheckIfDateChanged(this.value)" ></asp:TextBox>

然后在我的jquery中我想检查它的日期,所以我添加了一个警告:

function CheckIfDateChanged(date)
{
   alert(date);
}

onblur似乎在文本框实际更改为新日期之前被调用。因此,如果当前日期是2016年10月28日,我将其更改为2016年10月29日,则会显示28/10/2016。然后,在我关闭警报消息后日期会发生变化。

如何在日期选择器中选择新日期时知道日期是否更改?

3 个答案:

答案 0 :(得分:0)

您可以使用onSelect事件。

$(".dateonly").datepicker({
  onSelect: function(date) {
    display("Date: " + this.value);
  }
});

了解更多https://api.jqueryui.com/datepicker/#option-onSelect

答案 1 :(得分:0)

您可以使用onchange textbox事件。当文本框的值发生变化时会触发此事件。

<asp:TextBox runat="server" ID="txtDate" CssClass="dateonly" Width="80px" onchange="CheckIfDateChanged(this.value)" ></asp:TextBox>

OR

你可以在datepciker的onSelect`上绑定事件并调用你的函数

$(".dateonly").datepicker({
  onSelect: function(date) {
    alert(date);
  }
});

答案 2 :(得分:0)

尝试使用onfocusout

我自己也遇到过类似的问题。我刚刚将onfocusout添加到元素属性以及我想调用的函数中。