我有一个文本框控件,脚本是
<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服务从这里被解雇了,但是每当我运行应用程序时它都会被触发,我希望它只在我更改文本框中的日期时被解雇......任何人都可以帮助我。
注意:我正在使用母版页。
答案 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);
}
});
});
});