Php 多输入字段上的Jquery日期选择器

Php 多输入字段上的Jquery日期选择器,php,javascript,jquery,jquery-ui-datepicker,Php,Javascript,Jquery,Jquery Ui Datepicker,我有一个页面,其中有多个输入字段,分别是fromdate和todate。我已经创建了动态ID和名称。我使用了jquery日期选择器 代码: 在循环的每次迭代中重新声明日期变量。因此,循环完成后,onSelect处理程序中使用的dates变量等于循环中设置的最后一项 更新尝试以下代码: Update2还有一件事是变量i的问题。它的当前值在循环中可用,因此稍后使用onSelect处理程序时,i的值与上一次迭代中的值相同。要克服这一点,必须将i放在另一个函数的上下文中,这就是为什么我将代码包装在另

我有一个页面,其中有多个输入字段,分别是fromdate和todate。我已经创建了动态ID和名称。我使用了jquery日期选择器

代码:



在循环的每次迭代中重新声明
日期
变量。因此,循环完成后,onSelect处理程序中使用的
dates
变量等于循环中设置的最后一项

更新尝试以下代码:

Update2还有一件事是变量
i
的问题。它的当前值在循环中可用,因此稍后使用onSelect处理程序时,i的值与上一次迭代中的值相同。要克服这一点,必须将
i
放在另一个函数的上下文中,这就是为什么我将代码包装在另一个传递
i
变量的函数的循环体中

更新3还有一件事——选择选项(minDate或maxDate)的逻辑必须颠倒

$(document).ready(function(){
    var count=0;
    count=<?php echo count($locations);?>;

    for(i=1;i<=count;i++)
    {
        (function(i) {
            $('#txtFromDate_'+i+', #txtToDate_'+i).datepicker({
                defaultDate: new Date(),
                changeMonth: true,
                changeYear: true,
                dateFormat: 'yy-mm-dd',
                onSelect: function(selectedDate) {
                    var option, otherPicker;
                    if (this.id == "txtFromDate_"+i) {
                       otherPicker = $("#txtToDate_"+i);
                       option = "minDate";
                    } else {
                       otherPicker = $("#txtFromDate_"+i);
                       option = "maxDate";
                    }
                    var instance = $(this).data("datepicker");
                    var date = $.datepicker.parseDate(instance.settings.dateFormat ||     $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
                    otherPicker.datepicker("option", option, date);
                }
            };
        })(i);
    }
});
$(文档).ready(函数(){
var计数=0;
计数=;

对于(i=1;ithanks wtk用于回复。您能详细说明您的答案吗?我已经应用了建议的代码,但它不起作用,可以选择小于起始日期的代码。对于混淆,很抱歉。还有一个错误-我已经更新了代码。
(document).ready(function(){
        var count=0;
        count=<?php echo count($locations);?>;

        for(i=1;i<=count;i++)
        {
            var dates = $('#txtFromDate_'+i+', #txtToDate_'+i).datepicker({
            defaultDate: new Date(),
            changeMonth: true,
            changeYear: true,
            dateFormat: 'yy-mm-dd',
            onSelect: function(selectedDate) {
                var option = this.id == "txtFromDate_"+i ? "maxDate" : "minDate";
                var instance = $(this).data("datepicker");
                var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
                dates.not(this).datepicker("option", option, date);
            }
    });
        }
$(document).ready(function(){
    var count=0;
    count=<?php echo count($locations);?>;

    for(i=1;i<=count;i++)
    {
        (function(i) {
            $('#txtFromDate_'+i+', #txtToDate_'+i).datepicker({
                defaultDate: new Date(),
                changeMonth: true,
                changeYear: true,
                dateFormat: 'yy-mm-dd',
                onSelect: function(selectedDate) {
                    var option, otherPicker;
                    if (this.id == "txtFromDate_"+i) {
                       otherPicker = $("#txtToDate_"+i);
                       option = "minDate";
                    } else {
                       otherPicker = $("#txtFromDate_"+i);
                       option = "maxDate";
                    }
                    var instance = $(this).data("datepicker");
                    var date = $.datepicker.parseDate(instance.settings.dateFormat ||     $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
                    otherPicker.datepicker("option", option, date);
                }
            };
        })(i);
    }
});