0

我正在尝试创建一个带有文本框的 div,我希望 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' );

});
4

3 回答 3

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'>
于 2012-10-13T14:03:56.537 回答
1

使用 .on():

$( 选择器 ).live( 事件、数据、处理程序 ); // jQuery 1.3+

$( 文档 ).delegate( 选择器、事件、数据、处理程序 ); // jQuery 1.4.3+

$( 文档 ).on( 事件、选择器、数据、处理程序 ); // jQuery 1.7+

于 2014-01-22T10:02:41.830 回答
0

使用 .live()

http://api.jquery.com/live/

于 2012-10-13T14:04:19.500 回答