কার্সারটি TEXTAREA এর মধ্যে থাকা এবং Ctrl+ Enterটিপে গেলে আমি কীভাবে কিছু ট্রিগার করব ? JQuery ব্যবহার করে । ধন্যবাদ
উত্তর:
আপনি কীটি টিপছে event.ctrlKey
কিনা তা দেখতে পতাকাটি ব্যবহার করতে পারেন Ctrl, এরকম কিছু:
$('#textareaId').keydown(function (e) {
if (e.ctrlKey && e.keyCode == 13) {
// Ctrl-Enter pressed
}
});
উপরের স্নিপেটটি এখানে দেখুন ।
10
, না 13
।
keypress
ইভেন্ট, keycode 10 হবে, কিন্তু keydown
বা keyup
রিপোর্ট হবে 13. শুধু পরীক্ষা ক্রোম
আসলে এইটি কৌশলটি করে এবং সমস্ত ব্রাউজারে কাজ করে:
if ((event.keyCode == 10 || event.keyCode == 13) && event.ctrlKey)
জেএস ফিডাল লিঙ্ক ।
মন্তব্য:
keyCode
নয়, 10 হিসাবে চিহ্নিত হবে ( বাগ রিপোর্ট )। সুতরাং আমরা উভয় জন্য পরীক্ষা করা প্রয়োজন।ctrlKey
হয় controlউইন্ডোজ, লিনাক্স এবং MacOS (না হয়ে command)। এছাড়াও দেখুন metaKey
।ctrlKey
ম্যাক্সের কমান্ড কীটির সাথে মিলে যায়?
if ((e.keyCode == 10 || e.keyCode == 13) && (e.ctrlKey || e.metaKey))
সর্বজনীন সমাধান
এটি ম্যাকোসকেও সমর্থন করে: Ctrl+ Enterএবং ⌘ Command+ উভয়ই Enterগ্রহণ করা হবে।
if ((e.ctrlKey || e.metaKey) && (e.keyCode == 13 || e.keyCode == 10)) {
// do something
}
e.ctrlKey
সনাক্ত ⌃ Control
এবং e.metaKey
সনাক্তকরণে ⌘ Command
। যদি আপনি আচরণটি ট্রিগার করতে Ctrl-Enter এবং কমান্ড-এন্টার উভয়ই চান তবে এটি ব্যবহার করুন।
e.keyCode
এর 10
মানে ছাড়াও লিখুন 13
? MDN keyCode
ডকুমেন্টেশন শুধুমাত্র তালিকা 13
লিখুন জন্য একটি সম্ভাব্য মান হিসাবে, একাধিক ব্রাউজার এবং অপারেটিং সিস্টেম জুড়ে পরীক্ষিত।
আমি অন্যের উত্তরগুলি অসম্পূর্ণ অথবা ক্রস ব্রাউজারের সাথে সামঞ্জস্যপূর্ণ নয় found
এই কোডটি গুগল ক্রোমে কাজ করে।
$(function ()
{
$(document).on("keydown", "#textareaId", function(e)
{
if ((e.keyCode == 10 || e.keyCode == 13) && e.ctrlKey)
{
alert('ctrl+enter');
}
});
});
এটিকে সাধারণ-তবে-নমনীয় JQuery প্লাগইনটিতে বাড়ানো যেতে পারে:
$.fn.enterKey = function (fnc, mod) {
return this.each(function () {
$(this).keypress(function (ev) {
var keycode = (ev.keyCode ? ev.keyCode : ev.which);
if ((keycode == '13' || keycode == '10') && (!mod || ev[mod + 'Key'])) {
fnc.call(this, ev);
}
})
})
}
এইভাবে
$('textarea').enterKey(function() {$(this).closest('form').submit(); }, 'ctrl')
যখন ব্যবহারকারী সেই ফর্মের টেক্সারিয়ায় ফোকাস সহ সিটিআরএল-এন্টার টিপান তখন একটি ফর্ম জমা দিতে হবে।
( Https://stackoverflow.com/a/9964945/1017546 ধন্যবাদ সহ )
খেলাটি হতে খানিকটা দেরি হলেও এখানে আমি ব্যবহার করি। এটি কার্সারের বর্তমান লক্ষ্য যে ফর্মটি জমা দিতে বাধ্য করবে।
$(document.body).keypress(function (e) {
var $el = $(e.target);
if (e.ctrlKey && e.keyCode == 10) {
$el.parents('form').submit();
} else if (e.ctrlKey && e.keyCode == 13) {
$el.parents('form').submit();
}
});
if
… else if
" সরল করতে পারেন if (e.ctrlKey && (e.keyCode == 10 || e.keyCode == 13))
।