0

我有一个动态生成的文本字段(使用以下代码):

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当前日期的部分,文本字段不显示任何内容,它在焦点时显示日期选择器。

然而,在使用警报时,我发现文本字段具有我想要的值,它只是不显示它。

4

2 回答 2

1

我认为问题是在你这样做之后.modal(),你有两个带有 id 的元素#currDate,这不是有效的 HTML。没有看到整个页面,很难确定,但我实际上已经看到了很多这个问题。jQuery 将找到第一个 ID,这就是设置您的值的元素。

如果不查看其余代码,很难说确切的修复。您可以在调用之前尝试设置 currDate 元素的值.modal()。如果有办法将 currDate 更改为类或唯一 ID,那可能会有所帮助。或者,您也许可以将您拥有的代码更改为$('#new_reciept #currDate').val(prettyDate);.

于 2012-04-26T21:29:49.610 回答
0

正如之前的海报所说,正是.datepicker()电话使日期空白。您可以添加一个参数,该参数defaultDate: new Date()应该允许您删除上面的代码并给出您想要的结果。

此外,您的输入元素永远不会关闭 <input type='text' class='span2' id='currDate' >应该是<input type='text' class='span2' id='currDate' />

于 2012-04-26T20:58:44.603 回答