2016-06-24 10 views
1

の前にtbodyの内部に動的テーブルがあり、入力があり、javascriptまたはjqueryを使用してこの値を取得したいと考えています。TRテーブル外で最も近い隠し値を取得

<input id="formID" type="hidden" value="records.get(i).getFormID"> 
    <tr> 
     <td><%=records.get(i).getCensusYear()%></td> 
     <td> Approved </td> 
     <td><%=records.get(i).getApprovedByName()%> </td> 
     <td> </td> 
     <td> <input align="center" id ="clickedTable" class="btn btn-flat btn-success" style="margin: 0 auto 5% auto" type="button" value="View Table"/></td> 
     <td> <input align="center" id= "clickedChart" class="btn btn-flat btn-success" style="margin: 0 auto 5% auto" type="button" value="View Chart"/></td> 
    </tr> 

ボタンをクリックすると、inputの値を取得します。私はすでにclosest, prev and findを使っていましたが、うまく動作しません。また、私はprevious questionの答えを試みたが、それでも動作しません。

$('#clickedTable, #clickedChart').click(function() { 
    if (this.id == 'clickedTable') { 
     document.getElementById('clicked').setAttribute('value', "table"); 
     var $item = alert($(this).closest('tr').prev('input').attr('formID')); 
     var $item = alert($(this).prev('input').attr('formID')); 

     alert($item);; 

     document.getElementById('archivedView').submit(); 
    } else if (this.id == 'clickedChart') { 
      document.getElementById('clicked').setAttribute('value', "chart"); 
      var $item = $(this).closest('tr').prev(); 
      document.getElementById('formID').setAttribute('value', $item); 
      document.getElementById('archivedView').submit(); 
    } 
    });` 

上記のコードは未定義の値を返し続けます。

+3

問題があります - >ブラウザがページをレンダリングすると、すべての ''タグがプッシュされますテーブル外。同じIDSを使用することはできません! – xAqweRx

+3

'各trの前にtbodyの中に、私は入力があります。これはあなたをhtml無効にします。テーブルの子のみがtrであれば、あなたはここにあなたの入力を持つことができます – guradio

+0

アドバイスをいただきありがとうございます、私はこの – SCS

答えて

0

EDIT - あなたはDataTableのを使用しているので、あなたのような何かを行うことができます:

HTML:

<table id="t">...</table> 

jqueryの:

myData = [ 
    ["James", "1997", "<input type=\"button\" onclick=\"funcX('someData')\""], 
    ["Peter", "2003", "<input type=\"button\" onclick=\"funcX('someOtherData')\""] 
]; //can be from any other source (read dataTables docs) 

$('#t').DataTable({ 
     data: myData, 
     columns: [ 
      { title: "Name" }, 
      { title: "Year" }, 
      { title: "" } //your input button 
     ] 
}); 

function funcX(arg) { ... } 
+0

動的テーブルです。 – SCS

+0

@SCS。知っている。 'func1'の' myValue'と '2'は動的です。たとえば、(phpを使用して)これは:foreach($ myArray as $ myValue){echo '​​ ...} 'です。 –

+0

'dataTables'をソートなどに使う予定です。' td'に隠された入力があってもDataTablesは動作しません:(@kajoh – SCS

関連する問題