未使用日历控件触发Textbox OnTextChanged事件

时间:2018-06-20 02:33:54

标签: javascript asp.net

我正在使用Internet上的日历控件。我对javascript不太了解,日历是供手机使用的-上下滚动以选择日期和时间,然后需要单击“确认”或“取消”。 在我看来,相关的js代码是:

...
<li id="dateconfirm">Confirm</li>'
...

        function bindButton(){
        resetIndex();
        $("#dateconfirm").unbind('click').click(function () {   
            var datestr = $("#yearwrapper ul li:eq("+indexY+")").html().substr(0,$("#yearwrapper ul li:eq("+indexY+")").html().length-1)+"-"+
                      $("#monthwrapper ul li:eq("+indexM+")").html().substr(0,$("#monthwrapper ul li:eq("+indexM+")").html().length-1)+"-"+
          $("#daywrapper ul li:eq("+Math.round(indexD)+")").html().substr(0,$("#daywrapper ul li:eq("+Math.round(indexD)+")").html().length-1);
           if(datetime){
                 if(Math.round(indexS)===1){//afternoon
                    $("#Hourwrapper ul li:eq("+indexH+")").html(parseInt($("#Hourwrapper ul li:eq("+indexH+")").html().substr(0,$("#Hourwrapper ul li:eq("+indexH+")").html().length-1))+12)
                 }else{
                    $("#Hourwrapper ul li:eq("+indexH+")").html(parseInt($("#Hourwrapper ul li:eq("+indexH+")").html().substr(0,$("#Hourwrapper ul li:eq("+indexH+")").html().length-1)))
                 }
                 datestr+=" "+$("#Hourwrapper ul li:eq("+indexH+")").html().substr(0,$("#Minutewrapper ul li:eq("+indexH+")").html().length-1)+":"+
                         $("#Minutewrapper ul li:eq("+indexI+")").html().substr(0,$("#Minutewrapper ul li:eq("+indexI+")").html().length-1);
                     indexS=0;
            }

            if(Ycallback===undefined){
                 if(docType){that.val(datestr);}else{that.html(datestr);}
            }else{
                                Ycallback(datestr);
            }
            $("#datePage").hide(); 
            $("#dateshadow").hide();
        });
        $("#datecancle").click(function () {
            $("#datePage").hide(); 
    $("#dateshadow").hide();
            Ncallback(false);
        });
    }

当焦点位于文本框上时,它将弹出一个日历。最初它的.html是:

$(function(){
$('#Time').date({theme:"datetime"});
});

<div>Date Set:<input id="Time"/></div>

要将其从.html更改为.aspx。我做了一些修改:

$(function () {
$("#<%= txtDate.ClientID %>").date({ theme: "datetime" });
});   

<asp:TextBox ID="txtDate" runat="server" BorderWidth="0" OnTextChanged="txtDate_TextChanged" AutoPostBack="true" Font-Size="20" placeholder="Select Date"/>

当我选择一个日期/时间并单击“确认”时,我想触发 OnTextChanged 事件,尽管该文本框中的文本已相应更改,但并未触发。这是为什么?谢谢。

1 个答案:

答案 0 :(得分:0)

对于文本框控件,“仅当用户更改了文本时才会引发事件;如果以编程方式更改了文本则不会引发事件。”

https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.textbox.textchanged(v=vs.110).aspx