2014-12-13 66 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