防止JQuery Datepicker的OnSelect函数重置CSS

时间:2013-02-14 13:15:36

标签: jquery primefaces

我有一个JQuery函数,我只使用“ beforeShowDay ”函数启用了几个日期。 我正在使用onSelect函数来获取所选日期。 幸运的是,这两个都很好。 但是这里有一个问题一旦我选择了一个日期,它的背景只会在很短的时间内再次变化,突出显示的背景会回到当前日期。 如果我删除onSelect功能,那么它的工作正常。 请帮助我的代码:

var dates = [[2013, 2, 1],[2013, 2, 9],[2013, 2, 25],[2013,3,15]];

$(function(){
      $('[id="form1:kix_inline"]').datepicker(
      {
    beforeShowDay: function (date)
        {

          var x= dates.length;
      var year = date.getFullYear(), month = date.getMonth(), day = date.getDate();
      for (var i=0; i < x; i++)
      {
         if (year == dates[i][0] && month == dates[i][1] - 1 &&  day == dates[i][2])
         {
            return [true, 'ui-state-highlight ui-state-active'];
         }
       }
      return [false];
    },

    onSelect: function(value, date) {

         var frm = document.getElementById("sendDateForm");
         frm.submit();

    }
    });
});

问题:  最初只启用几个日期(在“日期”上方的数组中提到)。一旦我点击任何一个日期,“当前日期样式”将只在那里停留几秒钟。它会再次反弹回当前日期。

请帮忙[对不起,我的解释不明确]

1 个答案:

答案 0 :(得分:1)

看起来你在onSelect函数中提交了一个表单:

var frm = document.getElementById("sendDateForm");
    frm.submit();

提交重新加载页面,这就是为什么它只闪烁正确的颜色,然后恢复到原始日期,页面重新加载!如果您需要发送表单,而不是重新加载页面,则必须使用ajax。