通过AJAX更新Pickadate输入

时间:2016-07-05 04:58:37

标签: javascript php jquery ajax pickadate

我使用Pickadate.jsJQuery Form Plugin。我分别有日期和时间选择器。我想要做的是根据datepicker的值禁用timepicker中的时间。所以,我试图将JSON数据转换为<div class="container"> <div class="content-1">Content 1</div> <div class="content-2">Content 2</div> </div>。我可以在console.log中使用纯文本,但它仍然没有漫无目的。

我经常尝试these solutions in that question。但我无法启动它们。 (我将pickadate函数和类调整为pickatime&#39; s。

&#13;
&#13;
picker.set("disable", [ ]);
&#13;
// Javascript
$(document).ready(function() {
  $("input").click(function() {
    $(".datepicker").pickadate({
      format: 'yyyy-mm-dd',
      formatSubmit: 'yyyy-mm-dd',
      min: true,
      max: false
    });
    var $input = $(".timepicker").pickatime({
      format: 'HH:i',
      formatSubmit: 'HH:i',
      formatLabel: 'HH:i'
    });
    $('.datepicker').change(function() {
      $('#form').ajaxSubmit({
        target: '#check_result',
        url: 'check.php',
        success: function showResponse(responseText, $form) {
          var picker = $input.pickatime('picker');
          picker.set("disable", [
            console.log(responseText)
          ]);
        }
      });
      return false;
    });
  });
});
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:1)

你能发布一个从你的php返回的json的例子吗?

根据文档(http://amsul.ca/pickadate.js/api/#method-get-disable) 你的json应该是这样的:[2,30],[4,30],[9,0]

如果你的json是正确的,请确保它没有作为字符串传递给timepicker。尝试类似:

var json = JSON.parse(responseText);
picker.set("disable", [ json ]);

更新: 我想使用以下代码,您的json将正确返回:

...
$time = explode(',', $row['time']);
$time[0] = (int)$time[0];
$time[1] = (int)$time[1];
$disabled_times[] = $time;
...
echo json_encode($disabled_times);