jquery datepicker - 两个日期在同一表单中时发生冲突

时间:2011-07-27 10:42:06

标签: javascript jquery datepicker uidatepicker jqmodal

我有一个包含两个日期字段的表单。这是一个非常大的形式,所以我只展示相关部分。

<input id="dateofassessment" name="dateofassessment"  readonly="readonly" class='datebox' />
<input id="LastIncident" name="LastIncident" readonly="readonly" class="datebox" />

(我应该指出“dateofassessment”是表单中的第一项,“LastIncident”是最后一项)

我像这样附上了datepicker对象..

    $(".datebox").datepicker({
        dateFormat: 'dd-M-yy',
        changeYear: true,
        showButtonPanel: false
        });

“dateofassessment”输入框完美运行。日历显示正常,点击日期填写“dateofassessment”字段 - 完美!

但是,“LastIncident”框不能很好地工作。单击它会显示日历确定。但是,选择日期不会填写表格。事实上,日历在“LastIncident”上关闭,并在我选择日期后立即在“dateofassessment”字段中重新打开。

我无法在Intranet网站上发布整个代码,因为它有大量代码。但希望我已经发布了相关部分。

仅供参考,这些字段“只读”的事实没有任何区别。

...版本 jQuery v1.5.1 Datepicker 1.8.9

4 个答案:

答案 0 :(得分:1)

那是与datepicker相关的明显错误。绝对使用

$(".datebox").datepicker({
        dateFormat: 'dd-M-yy',
        changeYear: true,
        showButtonPanel: false
        });

尝试

$("#dateofassessment").datepicker({
        dateFormat: 'dd-M-yy',
        changeYear: true,
        showButtonPanel: false
        });

$("#LastIncident").datepicker({
        dateFormat: 'dd-M-yy',
        changeYear: true,
        showButtonPanel: false
        });

我知道这会让你重复自己,这很糟糕,但它可以帮助解决问题。或者你可以尝试另一个日期选择器。或者更新这个版本

答案 1 :(得分:0)

您的问题位于其他地方,请看这个按预期工作的小提琴:http://jsfiddle.net/AfmpL/

答案 2 :(得分:0)

您还可以使用.setDefaults使所有日期选择器的行为相同(我的主页中有我的,甚至在OnDocumentReady中也没有,因为我希望它在OnDocumentReady函数之前运行)。

$.datepicker.setDefaults({
    showOn: "button",
    buttonImage: "/Program/Images/calendar.png",
    buttonImageOnly: true,
    buttonText: ""
})

因此,你几乎不必重复自己。

$("#dateofassessment").datepicker();
$("#LastIncident").datepicker();

答案 3 :(得分:0)

尝试使用此JavaScript:

$(function() {
    $( "#datepicker" ).datepicker();
    $( "#datepicker" ).datepicker( "option", "dateFormat", "yy-mm-dd" );
});

$(function() {
    $( "#datepicker2" ).datepicker();
    $( "#datepicker2" ).datepicker( "option", "dateFormat", "yy-mm-dd" );   
});

然后使用以下表单字段:

<input type="text" id="datepicker" name="fecha_ingreso" />
<input type="text" id="datepicker2" name="fecha_ingreso2" />