简体   繁体   中英

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

Right now I'm using document.onmouseup event to select the text. But I'm only able to specify one input in my code. How do I select the text in the first row and put it in the input in the first row, and do the same thing for the second row?

The code snippet is here (from On Text Highlight Event? ):

var t = '';
function gText(e) {
t = (document.all) ? document.selection.createRange().text : document.getSelection();

document.getElementById('input1').value = t;
}

document.onmouseup = gText;
if (!document.all) document.captureEvents(Event.MOUSEUP);

https://jsfiddle.net/nrdq71pz/1/

I have used ShowSelection() function from here .

You can add a common class to the inputs where you want this feature. Also, you have to attach mouseup event to all the inputs. Please see below solution.

 var els = document.getElementsByClassName('selection'); function getSelection(textComponent) { var selectedText; if (textComponent.selectionStart !== undefined) { // Standards Compliant Version var startPos = textComponent.selectionStart; var endPos = textComponent.selectionEnd; selectedText = textComponent.value.substring(startPos, endPos); } else if (document.selection !== undefined) { // IE Version textComponent.focus(); var sel = document.selection.createRange(); selectedText = sel.text; } return selectedText; } for (var i = 0; i < els.length; i++) { els[i].addEventListener('mouseup', function() { this.value = getSelection(this); }) } 
 <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> </table> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM