我有一个动态生成的文本字段(使用以下代码):
echo "<div><table width='100%'><tr>
<td>
Date: <input type='text' class='span2' id='currDate'>
</td><td rowspan='2'></td></tr></table>";
用户按下按钮后会生成此字段,此按钮链接到javascript:
$('#receipts button').live('click', function(){
var id = this.id;
$.ajax({
type: "post", url: "receipt-stock.php", data: "production_detail_id="+id,
success: function(data) {
$('.modal-body').html(data);
$('#new_receipt').modal('show');
var myDate = new Date();
var prettyDate = myDate.getDate()+'-' +(myDate.getMonth()+1)+'-'+myDate.getFullYear();
$("#currDate").val(prettyDate);
$('#currDate').datepicker({ dateFormat: 'dd-mm-yy' });
}
});
});
从javascript可以看出我正在显示一个模态,其中包含上面代码中的文本字段。一切正常,除了我将#currDate
的值设置为当前日期的部分,文本字段在显示焦点时没有显示任何显示日期选择器的内容。
然而,在使用警报时,我发现文本字段具有我想要的值,它只是不显示它。
答案 0 :(得分:1)
我认为问题出在.modal()
之后,您有两个ID #currDate
的元素,它们不是有效的HTML。没有看到整个页面,很难肯定地说,但实际上我已经看到了这个问题。 jQuery将找到第一个ID,这是获取值集的元素。
如果没有看到其余的代码,很难说确切的修复。在调用.modal()
之前,您可以尝试设置currDate元素的值。如果有办法将currDate更改为类或唯一ID,这可能会有所帮助。或者,您可以将代码更改为$('#new_reciept #currDate').val(prettyDate);
。
答案 1 :(得分:0)
正如之前的一张海报所说,.datepicker()
电话会消除日期。你可以添加一个参数defaultDate: new Date()
,它可以让你删除上面的代码并给出你想要的结果。
此外,您的输入元素永远不会关闭
<input type='text' class='span2' id='currDate' >
应为<input type='text' class='span2' id='currDate' />