我正在尝试使用文本框创建一个div,我想让datepicker显示日期。到目前为止,我能够使用textbox和datepicker动态创建div,但我无法在文本框中显示日期。我在这做错了什么?
代码:
showdate(){
var newDateBoxdiv = $(document.createElement('div')).attr({ class:"EDate", id:"EDate"+i});
newDateBoxdiv.html('<input type="text" id="DisplayTextBox">');
addDateBox();
newDateBoxdiv.insertAfter('.EDate');
}
//Function called inside the above function
addDateBox(){
$('.EDate').find('input[id^="DisplayTextBox"]').each(function () {
$(this).datepicker({
showOn: "button",
buttonImage: "calendar.png",
buttonImageOnly: true
});
$(this).datepicker({dateFormat: 'dd-M-y'});
var dateFormat = $( this ).datepicker( "option", "dateFormat" );
$(this).datepicker( "option", "dateFormat", 'dd-M-y' );
});
答案 0 :(得分:1)
更新了代码..我注意到你的代码有些错误,包括newDateBoxdiv值。您的文本框DisplayTextBox也没有递增。试试这个。
showdate(){
var edatenum = $('#increment').val();
edateinc = "EDate"+edatenum; //increment the value of your div
var displaytextbox = "DisplayTextBox"+edatenum; //of course you have to increment your textbox also
$('#increment').val(""+(edatenum+1)); //increment the value of our hidden field
var newDateBoxdiv = $('<div class="EDate" id="'+edateinc+'"> <input type="text" id="'+displaytextbox+'"></div>');
newDateBoxdiv.insertAfter(".your_existing_box");
addDateBox(); //im not sure if this method already works?
}
<!-- outside of script -->
<input type='hidden' id='increment' value='1'>
答案 1 :(得分:1)
使用.on():
$(selector).live(events,data,handler); // jQuery 1.3 +
$(document).delegate(selector,events,data,handler); // jQuery 1.4.3 +
$(document).on(事件,选择器,数据,处理程序); // jQuery 1.7 +
答案 2 :(得分:0)
使用.live()