2016-09-15 59 views
0

我遇到以下问题;我有一个动态生成的表格。在其中一列中,我有一个选择输入和一些选项,在下一列中,我有一个Timestamp输入字段,只要用户选择其中一个选项,该字段应该自动填写当前日期。我有下面的代码,但是,时间戳只是为第一行(在我使用id作为输入字段时)或所有行(在我使用class作为输入字段时)生成的。我需要时间戳只填入与选择下拉列表相同的行中。任何帮助将不胜感激。用于动态生成输入字段的JQuery

<select class='Status'> 
    <option value= '1'> Option1 </option> 
    <option value= '2'> Option2 </option> 
</select> 

<input type=text class='TimeStamp'/> 

然后我JQuery的,我有以下代码:

$(document).ready(function() { 
    $('.Status').on('change', function() { 
     $('.TimeStamp').val("CurrentDate"); 
}); 
}); 
+1

HTML代码是更有益的,或创建的jsfiddle –

+0

可能的复制(http://stackoverflow.com/ [事件绑定的动态创建的元素吗?]问题/ 203198/event-binding-on-dynamic-created-elements) – vijayP

回答

1

试试这个:你表

$(document).ready(function() { 
    $('.Status').on('change', function() { 
     // get current row 
     var row = $(this).parent().parent(); 
     // find .TimeStanp in the current row and set value 
     row.find('.TimeStamp').val("CurrentDate");   
    }); 
}); 
+0

有没有简单的方法来格式化Date(),以这种格式返回日期:09-14-2016 10:11:51?我尝试了下面的代码,但它不起作用: 'var d = new Date(); var h = d.getHours(); \t \t \t h =(h <10)? (“0”+ h):h; \t \t \t var m = d.getMinutes(); \t m =(m <10)? (“0”+ m):m; \t var s = d.getSeconds(); \t s =(s <10)? (“0”+ s):s; \t \t \t datetext = datetext +“”+ h +“:”+ m +“:”+ s;' – Luke

+0

查看[jQuery date formatting](http://stackoverflow.com/questions/5250244/ jQuery的日期格式) – stweb

1

您需要使用事件delegation像以下。

$(document).on('change', '.Status', function() { 
    $('.TimeStamp').val("CurrentDate"); 
});