簡體   English   中英

動態生成的文本字段未顯示javascript設置的值

[英]Dynamically generated textfield not showing the value set by javascript

我有一個動態生成的文本字段(使用以下代碼):

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的值設置為當前日期的那部分之外,其他所有東西都工作正常,在焦點對#currDate ,文本字段不顯示任何內容,而是顯示日期選擇器。

但是,在使用警報時,我發現文本字段具有我想要的值,只是不顯示它。

我認為問題出在執行.modal() ,您有兩個元素ID為#currDate ,這是無效的HTML。 沒有看到整個頁面,很難確定,但是實際上我已經看到了很多問題。 jQuery將找到第一個ID,這就是獲取值集的元素。

如果不看其余代碼,很難說出確切的解決方法。 您可以在調用.modal()之前嘗試設置currDate元素的值。 如果有辦法將currDate更改為類或唯一ID,則可能會有所幫助。 或者,您可以將代碼更改為$('#new_reciept #currDate').val(prettyDate);

就像以前的海報所說的那樣, .datepicker()調用使日期.datepicker() 您可以添加參數defaultDate: new Date() ,該參數應允許您刪除上面的代碼並提供所需的結果。

另外,您的輸入元素永遠不會關閉<input type='text' class='span2' id='currDate' >應該是<input type='text' class='span2' id='currDate' />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM