PDA

View Full Version : سوال: کپی کردن متن input بکمک jquery



Iran58
شنبه 28 اردیبهشت 1398, 17:51 عصر
سلام
فرض کنید یک input از text است و یک button هم داریم
حال می خواهم هروقتی روی button کلیک کردم متن نوشته شده داخل input عمل کپی انجام شود بکمک jquery
چه کدی باید بنویسم
باتشکر

plague
یک شنبه 29 اردیبهشت 1398, 08:35 صبح
https://www.w3schools.com/howto/howto_js_copy_clipboard.asp

Iran58
یک شنبه 07 مهر 1398, 08:11 صبح
سلام
مهندس اگر بخواهیم یک مقدار datat-id را کپی کنیم باید چکار کنیم
روش فوق جوابگو نیست
باتشکر

plague
یک شنبه 07 مهر 1398, 18:51 عصر
این کدیه که خودم استفاده میکنم

https://jsfiddle.net/wh459zk8/


این توابع رو تو صفحاتت اضافه کن


$(document).on('click' , '.copy-to-clip' , function(){
console.log($(this).parents('.copy-wrapper:first').find('.paset-to-clip').html());
copyToClipboard($(this).parents('.copy-wrapper:first').find('.paset-to-clip')[0]);
})


function copyToClipboard(elem) {
// create hidden text element, if it doesn't already exist
var targetId = "_hiddenCopyText_";
var isInput = elem.tagName === "INPUT" || elem.tagName === "TEXTAREA";
var origSelectionStart, origSelectionEnd;
if (isInput) {
// can just use the original source element for the selection and copy
target = elem;
origSelectionStart = elem.selectionStart;
origSelectionEnd = elem.selectionEnd;
} else {
// must use a temporary form element for the selection and copy
target = document.getElementById(targetId);
if (!target) {
var target = document.createElement("textarea");
target.style.position = "absolute";
target.style.left = "-9999px";
target.style.top = "0";
target.id = targetId;
document.body.appendChild(target);
}
target.textContent = elem.textContent;
}
// select the content
var currentFocus = document.activeElement;
target.focus();
target.setSelectionRange(0, target.value.length);

// copy the selection
var succeed;
try {
succeed = document.execCommand("copy");
} catch (e) {
succeed = false;
}
// restore original focus
if (currentFocus && typeof currentFocus.focus === "function") {
currentFocus.focus();
}

if (isInput) {
// restore prior selection
elem.setSelectionRange(origSelectionStart, origSelectionEnd);
} else {
// clear temporary content
target.textContent = "";
}
return succeed;
}


بعد وقتی میخای با فشردن یک دکمه یک متن کپی بشه
به دکمه کلاس copy-to-clip میدی
به متنه کلاس paset-to-clip میدی
و بعد هر دوشون رو توی یک المنت مثلا دیو با کلاس copy-wrapper میزاری




<div class="copy-wrapper">
<span class="paset-to-clip">text1</span>
<a href="#" class="copy-to-clip"> copy text</a>
</div>