2016-08-20 15 views
1

私は複数のレコードを持っています。各レコードには、一意のテキストが入力され、このテキストをクリップボードにコピーするボタンがあります。私は1つのレコードしかない限り、すべてうまく動作します。複数のレコードの場合は、最初のレコードだけが動作するように見えます。私はそれが多くの入力とボタン、任意のアドバイスで動作するように助けが必要でしょうか?別の質問は、入力を隠すことが可能かどうかである(type = 'hidden')。私は試みましたが、うまくいかないようです。入力からテキストボタンをコピー

マイHTML:

<input id='1' class="js-copytextarea" value='Sample Text to Copy 1 '> 
<button class="js-textareacopybtn" data-id="1">COPY</button> 
<br>  
<input id='2' class="js-copytextarea" value='Sample Text to Copy 2 '> 
<button class="js-textareacopybtn" data-id="2">COPY</button> 

のJavaScript:jsFiddleへ

var copyTextareaBtn = document.querySelector('.js-textareacopybtn'); 
copyTextareaBtn.addEventListener('click', function(event) { 
    var elem = $(this), selectedinput = elem.attr('data-id'); 
    console.log(selectedinput); 
    var copyTextarea = document.querySelector('.js-copytextarea'); 
    copyTextarea.select(); 

    try { 
    var successful = document.execCommand('copy'); 
    var msg = successful ? 'successful' : 'unsuccessful'; 
    console.log('Copying text command was ' + msg); 
    } catch (err) { 
    console.log('Oops, unable to copy'); 
    } 
}); 

リンク:あなたが持つすべてを選択したい場合は

https://jsfiddle.net/nitadesign/p58z0yrq/3/

答えて

2

私が見てきたように、あなたは既にあなたのコードにjQueryライブラリを添付しています。したがって、jQueryを使用すると簡単にできます。

$('.js-textareacopybtn').on('click', function(event) { 
 
    var copyTextarea = $(this).data('id'); 
 
    $('#' + copyTextarea)[0].select(); 
 

 
    try { 
 
    var successful = document.execCommand('copy'); 
 
    var msg = successful ? 'successful' : 'unsuccessful'; 
 
    console.log('Copying text command was ' + msg); 
 
    } catch (err) { 
 
    console.log('Oops, unable to copy'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id='1' class="js-copytextarea" value='Sample Text to Copy 1 '> 
 
<button class="js-textareacopybtn" data-id="1">COPY</button> 
 
<br>  
 
<input id='2' class="js-copytextarea" value='Sample Text to Copy 2 '> 
 
<button class="js-textareacopybtn" data-id="2">COPY</button>

あなたが隠し入力からコピーしようとしている場合、私はこれを使用することをお勧めします:私は私の問題のJavascriptの一部を解決し@Mojtabaへhttps://github.com/terinjokes/zClip

+0

を、私が持っている唯一の問題は、それが非表示の入力で動作するようにすることです。 – Nita

+0

hmmあなたの助けてくれてありがとうが、私はそれをテストしてdosn't仕事(https://jsfiddle.net/nitadesign/apqw5pdw/) – Nita

+0

私はCSSで入力を隠そうとしたが、また成功しなかった! – Nita

1

querySelectorは、1つの要素を選択し、与えられたクラスを使用してquerySelectorAllを実行し、次にtを繰り返します。コレクションとイベントハンドラをそれらにバインドします。

0

感謝を。私はCSSで入力を隠すこともできます。私はzClipを使うべきだと思いますが、今のところCSSのショートカットは私を形作っています。

ジャスト(.input-NOSHOW)入力に

CSSクラスを追加します。

.input-noshow { 
    background-color: transparent; 
    border: 0px; 
    outline: none; 
    -webkit-box-shadow: none; 
    -moz-box-shadow: none; 
    box-shadow: none; 
    width:5px; 
    color:transparent; 
    cursor:default; 
} 
.input-noshow::selection { 
    background: transparent; 
} 
.input-noshow::-moz-selection { 
    background: transparent; 
OK働く
関連する問題