JQuery自动填充表格行与相应的文本选择?

时间:2017-12-13 19:25:54

标签: javascript jquery html textselection

我之前的问题在这里,但似乎只使用窗口和文档无法完成。我想要的是,当选择第一行的文本时,将填充第一个输入。第二行也是如此。

javascript - select text in table cell and autofill the input on the same row

https://jsfiddle.net/nrdq71pz/6/

ErrorController

2 个答案:

答案 0 :(得分:1)

我无法弄清楚你在问什么,但这可以完成工作吗?当您单击"测试代码1"它会将输入值填入" Hello"。

https://jsfiddle.net/nrdq71pz/8/

HTML:

<table>
  <tr>
    <td class="select">Test code 1</td>
    <td>
      <input type='text' id='input1' class="selection" />
    </td>
  </tr>
  <tr>
    <td>Test code 2</td>
    <td>
      <input type='text' id='input2' class="selection" />
    </td>
  </tr>
</table>

jQuery的:

$('.select').click(function(){
    $('#input1').val("hello")
})

我刚刚注意到您对上述帖子的评论。我觉得我所做的是错的,所以看看我在这里做了什么,并告诉我哪一个更接近你需要的东西。 https://jsfiddle.net/nrdq71pz/9/

答案 1 :(得分:1)

这是jQuery解决方案。 (实际上比我想象的要容易,我认为元素中的选择文本不能轻易达到,但是......):

$('td').on('mouseup',function() {
if (window.getSelection){ 
     s = window.getSelection().toString()
    }
$(this).next().find('input').val(s);
});

演示:

&#13;
&#13;
$('td').on('mouseup',function() {
if (window.getSelection){ 
     s = window.getSelection().toString()
    }
$(this).next().find('input').val(s);
});
&#13;
td {
  padding:10px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>Test code 1</td>
<td>
  <input type='text' id='input1' class="selection" />
</td>
</tr>
<tr>
<td>Test code 2</td>
<td>
<input type='text' id='input2' class="selection" />
</td>
</tr>
<tr>
<td>Test code 3</td>
<td>
<input type='text' id='input3' class="selection" />
</td>
</tr>
</table>
&#13;
&#13;
&#13;

所以,重点是将事件放在单元格上,然后达到最接近的输入(在你当前的hTML结构中,这是有效的,如果你改变一些东西,你可以轻松修改它,我猜)