JQuery ব্যবহার করে, আমি কীভাবে ইনপুট উপাদানটি পেতে পারি যা ক্যারেটের (কার্সার) ফোকাসযুক্ত?
বা অন্য কথায়, কোনও ইনপুটটিতে ক্যারেটের ফোকাস রয়েছে কিনা তা কীভাবে নির্ধারণ করবেন?
JQuery ব্যবহার করে, আমি কীভাবে ইনপুট উপাদানটি পেতে পারি যা ক্যারেটের (কার্সার) ফোকাসযুক্ত?
বা অন্য কথায়, কোনও ইনপুটটিতে ক্যারেটের ফোকাস রয়েছে কিনা তা কীভাবে নির্ধারণ করবেন?
উত্তর:
// Get the focused element:
var $focused = $(':focus');
// No jQuery:
var focused = document.activeElement;
// Does the element have focus:
var hasFocus = $('foo').is(':focus');
// No jQuery:
elem === elem.ownerDocument.activeElement;
কোনটি আপনার ব্যবহার করা উচিত? jQuery ডক্স উদ্ধৃত :
অন্যান্য ছদ্ম-শ্রেণীর নির্বাচকদের মতো (যারা ":" দিয়ে শুরু হয়) তাদের পূর্ববর্তী প্রস্তাব দেওয়া হয়: ট্যাগের নাম বা অন্য কোনও নির্বাচককে কেন্দ্র করে; অন্যথায়, সর্বজনীন নির্বাচক ("*") নিহিত। অন্য কথায়, খালি
$(':focus')
সমান$('*:focus')
। আপনি যদি বর্তমানে ফোকাসযুক্ত উপাদানটির সন্ধান করছেন তবে D (ডকুমেন্ট.একটিভএলিমেন্ট) পুরো ডিওএম ট্রি অনুসন্ধান না করে এটিকে পুনরুদ্ধার করবে।
উত্তরটা হচ্ছে:
document.activeElement
এবং যদি আপনি উপাদানটি মোড়ানো কোনও jQuery অবজেক্ট চান:
$(document.activeElement)
$focused
, যেমন আমি ধরে নিয়েছি যে আপনি ভারটি বোঝাতে এটি একটি jquery অবজেক্ট। Tyvm।
$( document.activeElement )
JQuery ডকুমেন্টেশনে প্রস্তাবিত হিসাবে পুরো DOM ট্রি অনুসন্ধান না করে এটিকে পুনরুদ্ধার করবে Will
আমি ফায়ারফক্স, ক্রোম, আই 9 এবং সাফারি দুটি উপায়ে পরীক্ষা করেছি।
(1)। $(document.activeElement)
ফায়ারফক্স, ক্রোম এবং সাফারিতে প্রত্যাশার মতো কাজ করে।
(2)। $(':focus')
ফায়ারফক্স এবং সাফারিতে প্রত্যাশা অনুযায়ী কাজ করে।
আমি মাউসটিতে ইনপুট 'নাম' এ চলে এসে কীবোর্ডে এন্টার টিপলাম, তারপরে আমি কেন্দ্রীভূত উপাদানটি পাওয়ার চেষ্টা করেছি।
(1)। $(document.activeElement)
ইনপুটটি ফেরত পাঠায়: ফায়ারফক্স, ক্রোম এবং সাফারিতে প্রত্যাশার মতো নাম, তবে এটি ইনপুট দেয়: জমা দিন: আইই 9 এ অ্যাডপাসওয়ার্ড
(2)। $(':focus')
ইনপুট ফেরত দেয়: পাঠ্য: ফায়ারফক্স এবং সাফারিতে প্রত্যাশার মতো নাম, তবে IE তে কিছুই নেই
<form action="">
<div id="block-1" class="border">
<h4>block-1</h4>
<input type="text" value="enter name here" name="name"/>
<input type="button" value="Add name" name="addName"/>
</div>
<div id="block-2" class="border">
<h4>block-2</h4>
<input type="text" value="enter password here" name="password"/>
<input type="submit" value="Add password" name="addPassword"/>
</div>
</form>
এটা চেষ্টা কর:
$(":focus").each(function() {
alert("Focused Elem_id = "+ this.id );
});
.each
অ-প্রতিরোধী)
কীভাবে দুপুরের কথা বলা হয়েছে ..
document.activeElement.id
আমি আই 8 ব্যবহার করছি এবং এটি অন্য কোনও ব্রাউজারে পরীক্ষা করে দেখিনি। আমার ক্ষেত্রে, আমি ক্ষেত্রটি সর্বনিম্ন 4 অক্ষর এবং অভিনয়ের আগে ফোকাস করা হয়েছে তা নিশ্চিত করতে এটি ব্যবহার করছি। আপনি একবার চতুর্থ সংখ্যাটি প্রবেশ করার পরে এটি ট্রিগার হয়ে যায়। ক্ষেত্রটির 'বছরের' আইডি রয়েছে। আমি ব্যাবহার করছি..
if( $('#year').val().length >= 4 && document.activeElement.id == "year" ) {
// action here
}
$(':focus')[0]
আপনাকে আসল উপাদান দেবে।
$(':focus')
আপনাকে উপাদানগুলির একটি অ্যারে দেবে, সাধারণত একবারে কেবলমাত্র একটি উপাদান কেন্দ্রীভূত থাকে তাই যদি আপনার কোনওরকম একাধিক উপাদান ফোকাস থাকে তবে এটি কেবল ভাল।
এটা চেষ্টা কর::
$(document).on("click",function(){
alert(event.target);
});
যদি আপনি নিশ্চিত করতে চান যে ফোকাসটি কোনও উপাদানটির সাথে রয়েছে কিনা
if ($('#inputId').is(':focus')) {
//your code
}