使用AJAX在同一页面中使用多个日期选择器

问题描述 投票:0回答:1

我是JS的初学者,但我设法粘合了这样的代码。适用于一个输入:

<input type="text" class="form-control" id="1" name="date" placeholder="MM/DD/YYYY" >

		    $('#date').datepicker({
    todayBtn: true,
    daysOfWeekDisabled: "0",
    autoclose: true,
    todayHighlight: true
	
    }); 
	
	$("#date").datepicker({ dateFormat: 'dd/mm/yy' })
              .on("changeDate", function(e) {
                  var datetime = $("#date").datepicker("getDate").toISOString();
				  var datetime2 = e.format();
                  $.ajax({
                      type: "POST",
                      url: 'test4.php',
                      data: { 
        name : '<?php echo $exvar;?>',
        date2 : datetime2
    },
              });
});

如何添加更多输入,它可能是这样的:

<input type="text" class="datepick" id="date_1" />
<input type="text" class="datepick" id="date_2" />
<input type="text" class="datepick" id="date_3" />

在JS中要改变什么,以便datepicker和AJAX都能正常工作。如何在AJAX中读取变量,特别是datepicker读取的变量。非常感谢。 Szymon

javascript jquery ajax jquery-ui jquery-ui-datepicker
1个回答
0
投票

您可以使用共享的CSS类(代码中的“datepick”)将datepicker和change事件同时应用于所有文本框。然后在事件处理程序中,您可以使用this来引用触发事件的特定文本框。

附:据我所知,没有“changeDate”事件(除非您在此代码之外定义了一些自定义事件),并且提供的e事件没有format()方法。我假设你实际上想要来自datepicker的值,所以我在你的ajax调用中使用了它。我还将它记录到控制台,以便在此演示中可见。您还只需要调用一次“datepicker”函数:

$(function() {
  $('.datepick').datepicker({
    todayBtn: true,
    daysOfWeekDisabled: "0",
    autoclose: true,
    todayHighlight: true,
    dateFormat: 'dd/mm/yy'
  }).on("change", function(e) {
    var datetime = $(this).datepicker("getDate").toISOString();
    console.log(datetime);
    $.ajax({
      type: "POST",
      url: 'test4.php',
      data: {
        name: '<?php echo $exvar;?>',
        date2: datetime
      },
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet" />
<input type="text" class="datepick" id="date_1" />
<input type="text" class="datepick" id="date_2" />
<input type="text" class="datepick" id="date_3" />
© www.soinside.com 2019 - 2024. All rights reserved.