2017-10-02 5 views
0

Excelデータを多くのテキストボックスに貼り付けるjsコードを作成しようとしていますが、クリップボードにデータを分割できました次の入力に進んでデータを貼り付ける方法を理解するのに問題があります。簡略化のためJSまたはJQueryで現在のテキストボックスから次の(タブ付き)テキストボックスに切り替えるには

、HTMLは次のようになります。

<table> 
<tr> 
    <td> 
     <input type="text" id="box1"> 
    </td> 
    <td> 
     <input type="text" id="box2"> 
    </td> 
    <td> 
     <input type="text" id="box3"> 
    </td> 
</tr> 
<table> 
私のExcelデータは次のようになります

a1 b1 c1 

これは私がこれまで持っているものである、と私は上のコメントを追加しました私は問題があると思う。 (コードはこちらから「修正」:Intercept Paste data in JavaScript

document.addEventListener("paste", function (e) 
{ 

    console.log(e.target.id); 
    var pastedText; 
    if (window.clipboardData && window.clipboardData.getData) { // IE 
     pastedText = window.clipboardData.getData('Text'); 
    } else if (e.clipboardData && e.clipboardData.getData) { 
     pastedText = e.clipboardData.getData('text/plain'); 
    } 
    e.preventDefault(); 
    var row = pastedText.split('\n'); 
    for (var i=0;i<row.length;i++) 
    { 
     var col = row[i].split('\t'); 
     for (var j = 0; j<col.length; j++) 
     { 
      e.target.value = col[j]; 
      e = e.next(); //Trouble here (?) 
     } 
    } 
    return false; 
}); 

だから、これは動作するように想定される方法Excelからユーザーデータをコピーしている場合、+ Ctrlキー、その後、フォームに移行し、入力(BOX1)に彼らがクリックv(貼り付け)、3つのテキストボックスが塗りつぶされます。 Box1 = a1、Box2 = b1、Box3 = c1

Javascript/JQueryを使用してe.target.valueを次のtabbable入力ボックスに移動するにはどうすればよいですか?

答えて

1

あなたは、あなたがあなたのターゲットへiteratorと進歩をつかむと、これが働い

let inputIterator = document.querySelectorAll('input').entries(); 
let nextInput = inputIterator.next().value[1]; 
while(!e.target.isEqualNode(nextInput)){ 
    nextInput = inputIterator.next().value[1]; 
} 
.... 
     for (var j = 0; j<col.length; j++) 
    { 
     nextInput.value = col[j]; 
     nextInput = inputIterator.next().value[1]; 
    } 
+0

そこから続けることができ、すべての入力要素のNodeListをつかむ必要があるでしょうが、同様にそのリンクをありがとうございました私は学ぶことができた。 – arsarc

関連する問題