为什么我的第二个“时间戳”没有被填充?

时间:2013-06-07 18:52:06

标签: jquery html jquery-ui razor jquery-ui-datepicker

这个问题与此问题有关,但与此不同:How can I add Seconds to my "timepicker"?

我使用几乎相同的jQuery代码用于两对文本输入控件(BeginDate / BeginTime对和EndDate / EndTime对)。

第一对使用此代码可以正常工作:

var beginDatepickerOpts = {
  changeMonth: true,
  changeYear: true,
  showWeek: true,
  onClose: function() {
                    if (($("#BeginTime").val()).length == 0) {
                        $("#BeginTime").timeEntry("setTime", new Date(0, 0, 0, 0, 0, 0));
                    }
                    $("#BeginTime").focus();
                }
        }

$("#BeginDate").datepicker(beginDatepickerOpts);

...在选择日期时,“00:00”输入“时间”输入(我希望它是“00:00:00”,但这是一个完全不同的色调的马,在下面讨论上面提到的问题)。

但是,这段代码用于第二对输入:

   var endDatepickerOpts = {
     changeMonth: true,
     changeYear: true,
     showWeek: true,
     onClose: function() {
                if (($("#EndTime").val()).length == 0) {
                    $("#EndTime").timeEntry("setTime", new Date(0, 0, 0, 23, 59, 59));
                }
                $("#EndTime").focus();
            }
    }

    $("#EndDate").datepicker(endDatepickerOpts);

... - 虽然它似乎是出于所有实际目的而缩进 - 未能在表面末端的“EndTime”输入文本中输入任何内容。

为什么会这样?日期值是正确的,正确的(0,0,0,23,59,59)?除了元素的名称(EndTime而不是BeginTime)之外,两对的剃刀html是相同的。

1 个答案:

答案 0 :(得分:1)

确保初始化$.timeEntry()字段的两次出现,如下所示:

// Start Date / Time
var beginDatepickerOpts = {
    ...
}
$('#BeginTime').timeEntry(); // Initialize the BeginTime TimeEntry Field
$("#BeginDate").datepicker(beginDatepickerOpts);

// End Date / Time
var endDatepickerOpts = {
    ...
}
$('#EndTime').timeEntry(); // Initialize the EndTime TimeEntry Field
$("#EndDate").datepicker(endDatepickerOpts);

示例

JSFiddle示例Here