首页 > 解决方案 > 取消绑定后jquery函数停止

问题描述

我有一个函数可以执行以更改我的日期选择器以获取新值。在我选择我的下拉“changeme”后,它就可以工作了。下次我尝试没有任何反应?我没有解除 changme 下拉框的绑定。

 $("#changeme").change(function()
 {
    var d = newvalues();
    $("#sdate, #edate").removeClass("datepicker hasDatepicker");
    $("#sdate, #edate").unbind();
    $("#sdate, #edate").addClass("datepicker");

    $(".datepicker" ).datepicker({changeMonth: true, changeYear: true, dateFormat: "yy-mm-dd", minDate:d.start_date,maxDate:d.stop_date, yearRange:d.start_year[0]+":"+d.stop_year[0]});
    submitform();
 }

function newvalues()
{
    var s_date = $("#changeme > :selected").data('start_date');
    var s_year = s_date.split("-");
    var st_date = $("#changeme > :selected").data('stop_date');
    var st_date = $("#changeme > :selected").data('stop_date');
    return {start_date:s_date,
    start_year:s_year, stop_year:st_year,stop_date:st_date
    };
}

*************** 更新 *********************

对不起,我$("#sdate").change(function(){submitform();});停止工作。

 $("#startdate").change(function()
    submitform();
 });

它所做的只是提交带有新值的表单。我将尝试发布工作副本。但我没有收到任何错误。一旦页面加载或您选择运行并在第一个文本框中键入它就可以工作。从下拉菜单中选择一个选项并尝试更新文本框后。更改功能不会触发。这是小提琴的链接。 JS小提琴

标签: javascriptjquery

解决方案


弄清楚了。稍微改变了我使用 jquery 的方式。我最终删除了解除绑定并添加$dateField.datepicker("option", {changeMonth: true, changeYear: true, dateFormat: "yy-mm-dd", minDate:d.start_date,maxDate:d.stop_date, yearRange:d.start_year[0]+":"+d.stop_year[0]});

JSFiddle


推荐阅读