I have a textbox & button which looks like this:
<div class="col-xs-11" style="padding:20px 0 ">
<input type="text" class="form-control txtKeywords" id="txtKeyw" style="margin-bottom:10px; height:45px;" maxlength="80" placeholder="Click on keywords to combine your title">
<button type="submit" class="btn btn-space btn-success btn-shade4 btn-lg copyToClipboard">
<i class="icon icon-left s7-mouse"></i> Copy to Clipboard
/button>
And when the user clicks the button copy to clipboard, I'd like to copy the contents of the textbox into the clipboard like this:
$(document).on("click", ".copyToClipboard", function () {
copyToClipboard("txtKeyw");
successMessage();
});
Where the definition of the copyToClipboard
function is:
function copyToClipboard(element) {
var $temp = $("<input>");
$("body").append($temp);
$temp.val($(element).text()).select();
document.execCommand("copy");
$temp.remove();
}
But when I do this, nothing happens -- no values are copied to clipboard from the textbox... What am I doing wrong here?
MORE INFORMATION:
successMessage()
is called and displayed in the browser.#
in front of the element's ID does not resolve the issue.All you need to do is add data-clipboard-target="#toCopyElement" on any button, initialize it new Clipboard('. btn'); and it will copy the content of DOM with id toCopyElement to clipboard.
You can write a javascript function to copy value from one textbox into the other textbox, and call the same function on “onclick” event of the checkbox. Same function can be used to clear the textbox on unchecking the checkbox.
STEP 1: Change your copyToClipboard(element)
like this:
function copyToClipboard(text) {
var textArea = document.createElement( "textarea" );
textArea.value = text;
document.body.appendChild( textArea );
textArea.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',err);
}
document.body.removeChild( textArea );
}
STEP 2: Give an id to your button and then add an event listener to it like this:
$( '#btnCopyToClipboard' ).click( function()
{
var clipboardText = "";
clipboardText = $( '#txtKeyw' ).val();
copyToClipboard( clipboardText );
alert( "Copied to Clipboard" );
});
Try this..this is the correct way.
Step 1:
function copyToClipboard(text) {
var textArea = document.createElement( "textarea" );
textArea.value = text;
document.body.appendChild( textArea );
textArea.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');
}
document.body.removeChild( textArea );
}
Step 2:
$( '#btnCopyToClipboard' ).click( function()
{
var clipboardText = "";
clipboardText = $( '#txtKeyw' ).val();
copyToClipboard( clipboardText );
alert( "Copied to Clipboard" );
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With