[英]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.