首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery load append datepicker函数

jquery load append datepicker函数
EN

Stack Overflow用户
提问于 2011-05-24 03:43:53
回答 4查看 7.7K关注 0票数 0

我有以下函数,它用当前创建的时间戳的ids和names生成带编号的输入字段。我尝试为创建的每个对象附加一个datepicker,因此是唯一的/timestamp id。

有没有人能建议我做这件事的方法?

我相信datepicker函数需要在创建的每个输入字段下生成,但我不知道如何用JavaScript生成JavaScript函数。我在想,也许我可以使用jQuery的load()函数,并调用一个PHP脚本来生成一个唯一的函数并将其加载到一个div中。这是解决这个问题的最好方法吗?谢谢!

代码语言:javascript
复制
<script>
    var number = 0;
    var num;
    $('#add_date').click(function(event) {
    number++;
    var d=new Date();
    var year = d.getFullYear();
    var day = d.getDate();
    var month = d.getMonth() + 1;
    if (month<10){var month = "0"+month;}
    if (day<10){var day = "0"+day;} 
    var fullyear = month+"/"+day+"/"+year;
    num = event.timeStamp
    $('#box').append( number+". <input type='text' id='" + num + "' name='" + num + "' value='"+ fullyear + "' size='10'/><br><br>");
    var idtag = "#"+num;
});
</script>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-05-24 03:49:17

为什么不在创建输入时设置datepicker呢?

代码语言:javascript
复制
var picker = $("<input/>", {
  type: 'text',
  id: num,
  name: num,
  value: fullyear
}).datepicker();

$('#box').append(number).append(picker);

此外,您应该使"id“值看起来像有效的标识符,而不是普通数字。

票数 2
EN

Stack Overflow用户

发布于 2011-05-24 04:07:32

看看@Pointy对实际解决方案的回答,他比我更快,我的回答实际上不会解决你的问题,我只想提几点注意。

试着适当地缩进你的代码,这样在一个月后你就可以很容易地阅读它。您现在可能知道它的确切用途,但从长远来看,弄清楚它将是一件痛苦的事情。

虽然这不太可能,但不能保证同一事件不会在同一毫秒内触发两次,我会避免使用event.timeStamp来生成唯一的ID。虽然这只是个人偏好,但它可能永远不会发生,我只是不喜欢依赖计时器的唯一性。你已经有了递增的number变量,你应该使用它,这绝对是唯一的。

在将HTML写入字符串时,我宁愿使用适当的标准标记。使用'作为字符串边界,使用"作为HTML属性。

最后,在if(month<10){...}条件中,不要重新定义已经在函数中定义的变量。它可能不会抛出错误或有任何负面影响,但我们只能感谢目前宽宏大量的javascript实现,在相同的范围内不应该允许重定义。

最后,确保将所有jQuery初始化代码放入jQuery就绪函数中,以确保DOM和jQuery本身已完全加载。

很抱歉我的粗鲁..。;)

代码语言:javascript
复制
$(function(){
    var number = 0;

    $('#add_date').click(function(event) {
        number++;

        var d=new Date();
        var year = d.getFullYear();
        var day = d.getDate();
        var month = d.getMonth() + 1;

        if (month<10) month = "0"+month;
        if (day<10) day = "0"+day;
        var fullyear = month+"/"+day+"/"+year;

        // Insert @Pointy's solution in here...
    });
});
票数 2
EN

Stack Overflow用户

发布于 2011-05-24 03:53:10

您可以添加文件

代码语言:javascript
复制
<input type='text' id='" + num + "' name='" + num + "' value='"+ fullyear + "' size='10' class='fake-class'/>

然后,您可以像这样加载datepicker对象:

代码语言:javascript
复制
$('.fake-class').each(function(){
    $(this).datepicker();
});

希望能有所帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6102130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档