0

大家好,我是 jQuery 的新手。我有这个代码。

$(document).ready(function() {
        var start_date = '';
        var end_date = '';
        var total = 0;

        $("#getdate").click(function () {

            start_date = parseInt($('#startdate').val().substring(5,7));
            end_date = parseInt($('#enddate').val().substring(5,7));
            total = (end_date - start_date) + 1;

            var monthDiv = $(document.createElement('div')).attr("id",'month' + total);

            for(i=1;i<=total;i++){
                monthDiv.after().html('<input type="text" />');
                monthDiv.appendTo("#monthList");
            }
            //alert(total); 
        });
});

不知道我哪里出错了,但是.. 我想根据日期(start_date 和 end_date)生成文本框,例如在输入类型日期中,我从一月开始,到三月结束,它应该生成 3 个文本框。但在我的代码中,似乎每次点击只会生成一个文本框。任何帮助将非常感激。谢谢!

这是我的html代码:

<html>
<body>
   <input type="date" id="startdate" name="start_date" />
   <input type="date" id="enddate" name="end_date" />
   <input type="button" id="getdate" value="GET DATE"/>
   <div id="monthList">
   </div>
</body>
</html>
4

3 回答 3

1

看到这个:http: //jsfiddle.net/nTwcH/

$(document).ready(function () {
  var start_date = '';
  var end_date = '';
  var total = 0;

  $("#getdate").click(function () {

    start_date = parseInt($('#startdate').val().substring(5, 7));
    end_date = parseInt($('#enddate').val().substring(5, 7));
    total = (end_date - start_date) + 1;

    var monthDiv = $(document.createElement('div')).attr("id", 'month' + total);

    for (i = 1; i <= total; i++) {
        monthDiv.append($('<input type="text" />'));
    }
    monthDiv.appendTo("#monthList");
  });
});
于 2013-05-05T07:07:25.490 回答
1

你正在做一个 .after().html() ,它总是只放置最后一个文本框。

http://jsfiddle.net/bpxVt/

$(document).ready(function() {
        var start_date = '';
        var end_date = '';
        var total = 0;

        $("#getdate").click(function () {

            start_date = parseInt($('#startdate').val().substring(5,7));
            end_date = parseInt($('#enddate').val().substring(5,7));
            total = (end_date - start_date) + 1;

            var monthDiv = $(document.createElement('div')).attr("id",'month' + total);

            for(i=1;i<=total;i++){
                monthDiv.after('<input type="text" />');

            }
             monthDiv.appendTo("#monthList");
        });
});
于 2013-05-05T07:08:18.930 回答
0

行monthDiv.after().html(''); 应该写成monthDiv.html('');

于 2013-05-05T07:06:37.613 回答