jQuery日期选择器不显示原始文本值

时间:2011-11-20 08:19:22

标签: jquery jquery-ui-datepicker

我正在使用jQuery的日期选择器作为我的一个表单字段 - 出生日期。

该字段使用PHP生成,并将填入用户的原始出生日期。点击该字段会显示小部件,它完全没问题。

但是,文本框不显示原始值,即使它出现在浏览器的源代码中。我正在使用谷歌浏览器。

以下是jQuery代码:

$(function()
{
    $("#DatePicker").attr("readonly","readonly");

    $("#DatePicker").datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: "1950:+10"
    });

    $("#DatePicker").datepicker("option","dateFormat","dd MM yy");
});

这是PHP代码:

echo "<INPUT TYPE=\"TEXT\" NAME=\"$FieldName\" VALUE=\"$OriginalData\" ID=\"DatePicker\" CLASS=\"FullLength\">";

以下是HTML代码(从源代码复制):

<INPUT TYPE="TEXT" NAME="DateOfBirth" VALUE="18 August 2012" ID="DatePicker" CLASS="FullLength">

请告诉我出了什么问题。谢谢。

4 个答案:

答案 0 :(得分:4)

我不知道为什么,但这一行正在清除价值:

$("#DatePicker").datepicker("option","dateFormat","dd MM yy");

如果可能,请尝试添加这样的选项,在Firefox和Chrome中添加worked for me

$("#DatePicker").datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "dd MM yy"
});

答案 1 :(得分:1)

尝试使用像firefox这样的其他浏览器来检查它是否存在浏览器兼容性问题,不确定php但是在asp.net上可以选择将文本框文本可见性设置为true

答案 2 :(得分:1)

您应该使用setDate而不是直接设置输入值。

$("#birthday").datepicker()
.datepicker("option", "dateFormat", 'dd.mm.yy')
.datepicker('setDate', '<?= $humanoid->getBirthday()->format('d.m.Y') ?>');

答案 3 :(得分:0)

根据Nik的回答,这就是我如何使用#34;所有javascript&#34;

$(".popup-date").each(function(){
    var ele = $(this);
    var v = ele.val();
    ele.datepicker().datepicker("option", "dateFormat", "dd-M-yy").datepicker("setDate", v);
    });

接受的答案只能解决问题的一半。显示该值,但日期选择器选择后的日期格式是错误的。

我的示例使用了不同的日期格式(例如,2014年9月1日),因为我刚刚复制了我最终开始工作的代码。我还必须将其分解为获取元素和值,因为它在内插时最多是零星的。