2016-09-15 8 views
0

次の問題があります。私は動的に生成されたテーブルフォームを持っています。列の1つにはいくつかのオプションを持つ選択入力があり、次の列にはユーザーがオプションの1つを選択するとすぐに現在の日付で自動的に入力されるタイムスタンプの入力フィールドがあります。私は次のコードを持っていますが、タイムスタンプは最初の行(入力フィールドにIDを使用する場合)またはすべての行(入力フィールドにクラスを使用する場合)の場合にのみ生成されます。選択したドロップダウンリストと同じ行にのみタイムスタンプを入力する必要があります。どんな助けでも大歓迎です。動的に生成される入力フィールドの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 /イベントバインディングで動的に作成された要素) – 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 datetext = "" + h + ":" + m + ":" + s; – Luke

+0

[jQueryの日付の書式設定](http://stackoverflow.com/questions/5250244/)をご覧ください。 jquery-date-formatting) – stweb

1

あなたは次のようなイベントdelegationを使用する必要があります。

$(document).on('change', '.Status', function() { 
    $('.TimeStamp').val("CurrentDate"); 
}); 
関連する問題