2014-12-13 70 views
1

Codepen LinkJavaScript的拆分输入的属性到数组和输出

JSFiddle Link

目标:

创建拆分从输入字段年 - 月 - 日动态刷新输出。

说明:

注意不要在CodePen 40行注释之上的任何代码;

我得到的输入。每当用户选择带初始化日期选择器的日期时,输入格式为YYYY-mm-dd的输入增益为data-date。好吧,完美。

我想创建一个输出基于此data-date属性的div中。

所以我写了下面的代码:

function summaryOutput() { 
    var output  = $('#output'); 
    var end   = $('#end'); 

    end.on('change', function() { 
     var endString = end.attr('data-date'); 
     var endSplit  = endString.split('-'); 
     var year   = endSplit[0]; 
     var month  = endSplit[1]; 
     var day   = endSplit[2]; 

     output.text(year); 
    }); 

} 

这是非常简单的。

此功能不是在codepen

调用,调用它,并尝试选择一个日期,并看到一个错误:

Uncaught TypeError: Cannot read property 'split' of undefined

而且更重要的是,data-date属性不再适用。

更重要的是混乱的,它工作在控制台中。我的意思是,如果您在日期选择器中选择日期,然后逐步初始化所有变量,然后例如查看month变量中的内容,您将得到结果。

但它不再真正的文档中工作。

所以我,我在哪里错了?

回答

2

您需要在您输入的标签添加数据的最新属性。

改变输入标签看起来像这样:

<input type="text" id="end" data-date=""> 
+0

甚至不能相信它是那么容易。嗯,我其实认为错误是因为输入时没有数据日期属性而被改变。我希望在事件监听器中定义变量会有所帮助。但这是超容易的。 – user3785004 2014-12-13 04:42:26