Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何禁用小于或等于动态字段开始日期的日期选择器的结束日期_Jquery_Html_Codeigniter - Fatal编程技术网

Jquery 如何禁用小于或等于动态字段开始日期的日期选择器的结束日期

Jquery 如何禁用小于或等于动态字段开始日期的日期选择器的结束日期,jquery,html,codeigniter,Jquery,Html,Codeigniter,此处仅对默认值禁用小于开始日期的结束日期。我如何对动态字段也这样做 var常量={ 最长年份:“2020年” }; 变量datePickerOptions={ maxDate:constants.MAX_YEAR+'-12-31', 变化年:是的, 变化月:对, 日期格式:'年-月-日', onSelect:功能(已选择){ $(“#enddate”).datepicker(“选项”,“minDate”,选中) } }; $(文档).ready(函数(){ $('.datepicker').d

此处仅对默认值禁用小于开始日期的结束日期。我如何对动态字段也这样做

var常量={
最长年份:“2020年”
};
变量datePickerOptions={
maxDate:constants.MAX_YEAR+'-12-31',
变化年:是的,
变化月:对,
日期格式:'年-月-日',
onSelect:功能(已选择){
$(“#enddate”).datepicker(“选项”,“minDate”,选中)
}
};
$(文档).ready(函数(){
$('.datepicker').datepicker(datePickerOptions);
$('#container')。在('单击','.remove',函数()上{
$(this.parent().remove();
});
$('#添加')。在('单击',函数()上){
var row=$('div.addNew:first').clone();
$(“#容器”)。追加(行);
var pickers=row.find(“.datepicker”);
选取器。移除标记(“id”);
removeClass(“hasDatepicker”);
日期选择器(日期选择器选项);
});
});

开始日期:
结束日期:

开始日期:
结束日期:
变量常数={
最长年份:“2020年”
};
变量datePickerOptions={
maxDate:constants.MAX_YEAR+'-12-31',
变化年:是的,
变化月:对,
日期格式:'年-月-日',
onSelect:功能(已选择){
$(this.parent().find(“.enddate”).datepicker(“选项”,“minDate”,选中)
$(this.parent().find(“.startdate”).datepicker(“选项”,“maxDate”,选中)
}
};
$(文档).ready(函数(){
$('.datepicker').datepicker(datePickerOptions);
$('#container')。在('单击','.remove',函数()上{
$(this.parent().remove();
});
$('#添加')。在('单击',函数()上){
var row=$('div.addNew:first').clone();
$(“#容器”)。追加(行);
var pickers=row.find(“.datepicker”);
选取器。移除标记(“id”);
removeClass(“hasDatepicker”);
日期选择器(日期选择器选项);
});
});

对于那些现在(或将来)还没有读过你之前的问题的读者,你必须比那些人解释得更好。至少在此上下文中定义“默认”和“动态”。另外,“只有默认值的结束日期小于开始日期时才被禁用”…在本演示中没有。当我打开enddate选择器时,我可以选择我喜欢的任何日期。第二次打开时,我无法选择比上次选择的结束日期更早的任何日期。就我所见,这在逻辑上没有任何意义。无论如何,你基于给输入一个ID的想法是行不通的,因为ID必须是唯一的,当你克隆它们时,你会得到重复的ID,这是无效的。事实上,我很失望你甚至尝试了这一点——正如我在对上一个问题的回答和评论中解释的那样(请参阅),因为删除重复ID是让日期选择器处理克隆输入所需要做的事情之一。我觉得你并没有从中学到任何东西……你需要做的是找到一种方法将每对输入相互关联起来。一种方法是将所有开始日期输入赋予类“startdate”,将所有“enddates”赋予类“enddates”,然后在onSelect中,使用jQuery查找具有正确类的最近日期选择器字段,并获取其值。在您当前的HTML结构中,它实际上是已单击日期选择器的兄弟在那里你会找到你需要的工具。请尝试用我给你的线索自己来解决这个问题,如果你不满意,请用更多的代码再次询问stuck@Adyson,感谢问题已解决此问题在您第二次选择字段时仍会错误地限制结束日期。如果你决定改变主意并尝试设置一个更早的结束日期(但仍然在开始日期之后),那么这是个坏消息。此外,如果没有明确设置开始日期,而是将其保留为默认值,则结束日期永远不会受到限制。您需要对此进行更多的思考,并对其进行更彻底的测试。我在大约20秒的测试中发现了所有这些,所以你不可能玩得太多。@Adyson解决我问题的最佳方法是什么。我被这件事缠住了。当我单击第二个timeWell开始时,日期是受限的。您需要确保日期选择器使用正确的设置进行初始化,而不仅仅是等待用户选择某个内容。你还需要阻止他们自我更新——他们应该只互相更新。
    <div id="container">
      <div class="addNew" ?>
        Start Date :
        <input name='settings[start_date][]', value="2018-06-25"
        class="datepicker year-date-month-calendar input-small removetradingdates-block startdate" />
        End Date :
        <input name='settings[end_date][]', value="2018-06-25"
        class="datepicker year-date-month-calendar input-small removetradingdates-block enddate" />
        <input type="button" class="remove" value="Remove" />
      </div>
      <input type="button" id="add" value="Add Periods" />
    </div>

    var constants = {
      MAX_YEAR: "2020"
    };

    var datePickerOptions = {
        maxDate: constants.MAX_YEAR + '-12-31',
        changeYear: true,
        changeMonth: true,
        dateFormat: 'yy-mm-dd',
        onSelect: function(selected) {

  $(this).parent().find(".enddate").datepicker("option","minDate", selected)
  $(this).parent().find(".startdate").datepicker("option","maxDate", selected)                   
                }

      };

    $(document).ready(function() {
      $('.datepicker').datepicker(datePickerOptions);

      $('#container').on('click', '.remove', function() {
        $(this).parent().remove();
      });

      $('#add').on('click', function() {
        var row = $('div.addNew:first').clone();
        $('#container').append(row);
        var pickers = row.find(".datepicker");
        pickers.removeAttr("id");
        pickers.removeClass("hasDatepicker");
        pickers.datepicker(datePickerOptions);
      });
    });