jquery inline edit取决于单击的行获取复选框值

时间:2015-07-03 09:07:40

标签: jquery wordpress

我正在尝试对wp_list_table中的wordpress进行内联编辑,但我遇到了一堵砖墙。

问题是每个元素/ td是由2类列示例组成的:

<td class="name column-name" contenteditable="true">

这不是我要进行内联编辑的原因。因此,我转向了复选框,而不是它们的构建方式:

<th class="check-column" scope="row">
<input type="checkbox" value="1976" name="movie[]">

现在值是我的表的唯一ID,这是我内联编辑所需要的,但我不知道如何正确存储值,因为我有30多行,但必须处理类。

我得到了这个,

var id_val = $("input[name='movie[]']:checkbox").val();

但它没用,因为它总会得到第一行的id。

编辑: HTML代码:

<tr>
<th class="check-column" scope="row">
<input type="checkbox" value="1976" name="movie[]">
</th>
<td class="name column-name" contenteditable="true">Alexander Lausten</td>
<td class="datec column-datec" contenteditable="true">2015-06-09</td>
<td class="start column-start" contenteditable="true">12:00:00</td>
<td class="slut column-slut" contenteditable="true">23:00:00</td>
<td class="pause column-pause" contenteditable="true">0.50</td>
<td class="egenb column-egenb" contenteditable="true">130.00</td>
<td class="betaling column-betaling" contenteditable="true">3076.60</td>
</tr>

这是表格中每一行的标记。

编辑: 我需要一些单独输出我桌子上的复选框值。 例如:如果我按下第2行的名称列,那么我需要它来获取第2行复选框上的值,而不必选中该框

这最终成了我的解决方案。

首先,我使用此代码为每个tr添加了一个唯一的ID         $(function(){      $('。wp-list-table tr')。each(function(i){

    $(this).attr('id', 'row'+(i-1));
    i++;
});

然后我用这个

抓住了
  var trid;
        $('.wp-list-table tr').click(function() {
       trid = $(this).attr('id');  

  });

然后我用这个抓住复选框的值:

var id = $( "tr#" + trid + " th.check-column input[name='movie[]']:checkbox").val();

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题而不是你需要这样的东西:

$("input[name='movie[]']:checkbox").click( function() {
    console.log($(this).val());    
});

演示小提琴:http://jsfiddle.net/ddan/7z8a88yt/1/

根据您的评论查看更新的JSFiddle:http://jsfiddle.net/7z8a88yt/3/

答案 1 :(得分:0)

使用name =&#34; movie&#34;

<tr>
<th class="check-column" scope="row">
<input type="checkbox" value="1976" name="movie">
</th>
<td class="name column-name" contenteditable="true">Alexander Lausten</td>
<td class="datec column-datec" contenteditable="true">2015-06-09</td>
<td class="start column-start" contenteditable="true">12:00:00</td>
<td class="slut column-slut" contenteditable="true">23:00:00</td>
<td class="pause column-pause" contenteditable="true">0.50</td>
<td class="egenb column-egenb" contenteditable="true">130.00</td>
<td class="betaling column-betaling" contenteditable="true">3076.60</td>
</tr>

尝试使用此方法获取数组中的所有ID

var ids=[];
$("input[name='movie']").each(function(){
 ids.push($(this).val());
});

使所有字段都可编辑

$("input[name='movie']").each(function(){
 $(this).click(function(){
  var row=$(this).parent().parent();
  if($(this).is(':checked')){
   row.find('[contenteditable="true"]').each(function(){
   var inputFld=$('<input type="text" />');
   inputFld.val($(this).text());
   $(this).html(inputFld);
   });
  }else{
   row.find('[contenteditable="true"]').each(function(){
   var val=$(this).find('input').val();  
   $(this).html(val);
   });
  }
 })
});