文本框更改事件 - jquery

时间:2012-04-05 13:40:40

标签: jquery textbox

我有一个文本框控件,脚本是

<asp:TextBox ID="txtDate" EnableTheming="false" CssClass="calender" 
                        runat="server" ClientIDMode="Static"></asp:TextBox>

在日历控件中,如果我选择一个特定日期,我需要在该特定日期从数据库中获取记录,所以我尝试将文本框更改事件设为

$(function () {
    $('#txtDate').change(function () {
        $.ajax({
            type: "POST",
            url: "/DataService.asmx/fetchAbsentees",
            contentType: "application/json; charset=utf-8",
            data: "{'date' : '" + $("#txtDate").val() + "'}",
            dataType: "json",
            success: function (data) {
                alert("Successfully reached.");
            },
            error: function (req, status, error) {
                alert("ERROR:" + error.toString() + " " + status + " " + req.responseText);
            }
        });
    }).triggerHandler('change');
});

web服务从这里被解雇了,但是每当我运行应用程序时它都会被触发,我希望它只在我更改文本框中的日期时被解雇......任何人都可以帮助我。

注意:我正在使用母版页。

1 个答案:

答案 0 :(得分:3)

您需要删除以下部分:

.triggerHandler('change');

这会导致事件立即触发。

您的最终代码应如下所示:

$(function () {

    $('#txtDate').change(function () {
        $.ajax({
            type: "POST",
            url: "/DataService.asmx/fetchAbsentees",
            contentType: "application/json; charset=utf-8",
            data: "{'date' : '" + $("#txtDate").val() + "'}",
            dataType: "json",
            success: function (data) {
                alert("Successfully reached.");
            },
            error: function (req, status, error) {
                alert("ERROR:" + error.toString() + " " + status + " " + req.responseText);
            }
        });
    });

});