我有一个datepicker,它有onSelect属性,可以在datepicker输入字段上执行“更改”功能。 “更改”事件运行一个函数来填充选择列表。只要我选择了datepicker,这就行,但如果我在输入字段中手动输入日期,则change事件将执行两次,而选择列表将具有重复值。
$("#txtStartDate").datepicker({
defaultDate: +1,
dateFormat: "mm/dd/yy", //yy format represents a (4) digit year
minDate: new Date($("#ctl00_ContentPlaceHolder2_hidfldJunDate").val()),
maxDate: new Date($("#ctl00_ContentPlaceHolder2_hidfldMayDate").val()),
showOtherMonths: true,
changeMonth: true,
changeYear: true,
beforeShowDay: $.datepicker.noWeekends,
firstDay: 1,
showButtonPanel: true,
showOn: "button",
onSelect: function () { $(this).change(); },
buttonImage: "../Scripts/JQuery/ui/calendar.gif",
buttonImageOnly: true
}).mask("99/99/9999");
$("#txtStartDate").change(function () {
if (($("#txtStartDate").val() != "") && ($("#txtStartDate").val() != "__/__/____")) {
var DoDate = CheckDate($("#txtStartDate").val());
if (DoDate != "Good") {
alert("Please enter a valid Start Date");
$("#txtStartDate").val("");
$("#txtStartDate").focus();
}
else {
SemesterList($("#txtStartDate").val(), 0);
}
}
});
那么我需要做些什么才能防止此更改事件的多次触发,因此我不会在选择列表中获得重复项。我甚至尝试过selectlist.remove认为这将删除列表中的所有元素,但它仍然会成倍增加。
感谢任何帮助。
答案 0 :(得分:2)
使用此语法通过Datepicker删除原始绑定:
$("#txtStartDate").unbind('change').change(function () {
// your code
});