我正在使用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">
请告诉我出了什么问题。谢谢。
答案 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日),因为我刚刚复制了我最终开始工作的代码。我还必须将其分解为获取元素和值,因为它在内插时最多是零星的。