jquery ইনপুট ফোকাস উপর সব নির্বাচন করুন


326

ক্ষেত্রের সমস্ত পাঠ্য চেষ্টা করার জন্য এবং ব্যবহারকারীর ক্ষেত্রে ক্ষেত্রের দিকে দৃষ্টি নিবদ্ধ করার জন্য আমি এই কোডটি ব্যবহার করছি। যা ঘটে তা হ'ল এটি এক সেকেন্ডের জন্য সমস্ত নির্বাচন করে, তারপরে এটি নির্বাচন না করা এবং টাইপিং কার্সারটি যেখানে আমি ক্লিক করেছি ...

$("input[type=text]").focus(function() {
   $(this).select();
});

আমি চাই যে এটি সবই নির্বাচিত থাকুক।


কোন ব্রাউজারটি, এফএফ-এ আমার জন্য ঠিক আছে বলে মনে হচ্ছে?
R0MANARMY

8
ক্রোম =
এটির

1
আমি ক্রোম ব্যবহার করছিলাম, তবে। ক্লিক () সমস্যাটি সমাধান করে :)
টিম

4
দ্রষ্টব্য: এখানে গৃহীত উত্তরটি কেবলমাত্র অর্ধেক সমস্যার সমাধান করে। এটি নির্বাচিত কাজ করে তোলে, তবে পরবর্তী ক্লিকগুলির সাথে এটি নির্বাচন না করে পুনরায় কাজ করা কঠিন করে তোলে। আরও ভাল সমাধান এখানে পাওয়া যাবে: stackoverflow.com/questions/3380458/…
এসডিসি

উত্তর:


480

এর clickপরিবর্তে ব্যবহার করার চেষ্টা করুন focus। মনে হচ্ছে এটি মাউস এবং কী উভয় ইভেন্টের জন্য কাজ করে (কমপক্ষে ক্রোম / ম্যাকে):

jQuery <সংস্করণ 1.7:

$("input[type='text']").click(function () {
   $(this).select();
});

jQuery সংস্করণ 1.7+:

$("input[type='text']").on("click", function () {
   $(this).select();
});

এখানে একটি ডেমো রয়েছে


62
সমস্যাটি হ'ল আপনি মাউসের সাহায্যে পাঠ্যের অংশটি আর নির্বাচন করতে পারবেন না, একবার ক্লিক হয়ে গেলে, পুরো পাঠ্যটি নির্বাচন করা হয়।
হেলিন ওয়াং

6
আমার পক্ষে টেকসই সমাধান নয়। এটি ওয়াং দ্বারা বর্ণিত সমস্যা তৈরি করে।
মার্কেজ

1
নীয়ানপেনগের নীচে একটি সমাধান রয়েছে যা মাউস পাঠ্য নির্বাচন নিয়েও কাজ করে।
ফিলিবার্ট পেরুস

4
@ অ্যাউকিউরুইগুও f .ফএন.ওন ('ক্লিক করুন', ..) কম স্মৃতি ব্যবহার করতে পারে এবং গতিযুক্ত যুক্ত শিশু উপাদানগুলির জন্য কাজ করতে পারে।
রিকি বয়েস

7
ট্যাব করার সময় কোনও ক্ষেত্রকে কেন্দ্র করে ফোকাস করার জন্য এটি কাজ করে না।
কলিন ব্রেমে

65

আমি মনে করি যা ঘটে তা হ'ল:

focus()
   UI tasks related to pre-focus
   callbacks
       select()
   UI tasks related to focus (which unselect again)

কোনও কর্মসূচী সিলেক্টকে () সিঙ্ক হিসাবে কল করতে পারে, যাতে এটি ফোকাসের পরে সম্পূর্ণভাবে চালিত হয় ():

$("input[type=text]").focus(function() { 
    var save_this = $(this);
    window.setTimeout (function(){ 
       save_this.select(); 
    },100);
});

3
"(" ইনপুট [টাইপ = পাঠ্য] ")।
এটিয়েন

@ ইটিয়েন: ওহ, ভাল কথা: এই thisজাতীয় স্কোপগুলি সামলানো সামান্য অপ্রত্যাশিত। আমি কোড আপডেট করব।
পিসকভোর

3
0 এর টাইমআউট মানটিও ঠিক আছে বলে মনে হয় এবং "ফোকাসিন ()" ফাংশনটিও এই পদ্ধতিতে কাজ করছে।
টাঙ্গুয়

4
হ্যাঁ, আপনার একটি পিরিয়ড সেট করারও দরকার নেই। বর্তমান কল স্ট্যাকের শেষে টাইমআউটগুলি চালিত হওয়ার পরে 0 টি ঠিক করবে। এর অর্থ এই যে সমস্ত ইভেন্টগুলিতে ফোকাস এবং ক্লিক ক্লিক করুন এবং তারপরে আপনার ফাংশনটি চলে
জোশুয়া বামব্রিক

1
টাইমআউট 0-এর সমস্যাটি মনে হয়েছে যে 'ক্লিক' ইভেন্টটি পরবর্তী ফ্রেমে আগুন লাগিয়ে দিতে পারে, আবার বাক্সটি অনির্বাচিত করে। আমি খুঁজে পেয়েছি যে সময়সীমা 10 খুব ভালভাবে কাজ করছে - কোন লক্ষণীয় দেরি নয়, তবে 0 এর চেয়ে বেশি নির্ভরযোগ্য
ফিলিপ

57

আমি মনে করি এটি আরও ভাল সমাধান। অনক্লিক ইভেন্টে কেবল নির্বাচন করা থেকে ভিন্ন, এটি মাউসের সাহায্যে পাঠ্য নির্বাচন / সম্পাদনা রোধ করে না। এটি আইই 8 সহ প্রধান রেন্ডারিং ইঞ্জিনগুলির সাথে কাজ করে।

$('input').on('focus', function (e) {
    $(this)
        .one('mouseup', function () {
            $(this).select();
            return false;
        })
        .select();
});

http://jsfiddle.net/25Mab/9/


4
এটি কেবলমাত্র বিদ্যমান ক্ষেত্রের জন্য কাজ করে, এখানে নতুন ইনপুট ক্ষেত্রে এটি বাঁধাই একটি আপডেটের হল: jsfiddle.net
adriaan

কখনও কখনও ফোকাস একটি ক্লিক ছাড়াই দেওয়া যেতে পারে, এবং এটি এটি ভাল পরিচালনা করে। সে কারণে, আমার কাছে এটিই সবচেয়ে পরিষ্কার উত্তর - যদিও প্রতিবার ইনপুটটি কেন্দ্রীভূত করার সময় কিছু ঝটকা ইভেন্ট শ্রোতা থাকতে পারে ... সেটটাইমআউটের চেয়ে অনেক ভাল
ইলভেট

এটি সংখ্যার ইনপুটগুলির মধ্যে দ্বিতীয় ক্লিকটিকে মাউসের সাহায্যে পাঠ্যের আরও একটি অংশ নির্বাচন করতে দেয় না। দ্বিতীয়টি সরিয়ে ফেলা select()যদিও কাজ করে বলে মনে হচ্ছে।
dperish

অতিরিক্ত সহ আরও ভাল$('input[autofocus]').select();
ড্যানিয়েল ব্লেস্টাইনার

38

এখানে কিছু শালীন উত্তর রয়েছে এবং @ ব্যবহারকারী2072367 এর আমার পছন্দসই, তবে আপনি ক্লিকের পরিবর্তে ট্যাবটির মাধ্যমে ফোকাস করলে এটির একটি অপ্রত্যাশিত ফলাফল হয়। (অপ্রত্যাশিত ফলাফল: ট্যাবটির মাধ্যমে ফোকাসের পরে সাধারণত পাঠ্য নির্বাচন করতে, আপনাকে অবশ্যই একটি অতিরিক্ত সময় ক্লিক করতে হবে)

এই ফ্রিডালটি সংশোধন করে যে ছোট বাগটি এবং অতিরিক্তভাবে ডিওএম নির্বাচন এড়াতে vari (এটি) একটি ভেরিয়েবলে সঞ্চয় করে। এটা দেখ! (:

IE> 8 এ পরীক্ষিত

$('input').on('focus', function() {
    var $this = $(this)
        .one('mouseup.mouseupSelect', function() {
            $this.select();
            return false;
        })
        .one('mousedown', function() {
            // compensate for untriggered 'mouseup' caused by focus via tab
            $this.off('mouseup.mouseupSelect');
        })
        .select();
});

2
আপনার সম্পূর্ণরূপে +1 এবং @ ব্যবহারকারী2072367 এর সমাধানগুলি এই পুরো থ্রেডের মধ্যে সবচেয়ে পরিষ্কার এবং আমি আশা করি শীর্ষে যাওয়ার দ্রুত উপায় পাওয়ার কোনও উপায় ছিল।
কাইলমিট

1
এমনকি ব্যবহারকারী যদি সমস্ত টেক্সট তাদের নিজেরাই বেছে নেওয়ার চেষ্টা করে তবে কাজ করে works
ভিটানি

আমার জন্য এটি উইন্ডোজ 8.1 এ আই 11 এ কাজ করে না। এটি উইন্ডোজ 7 এবং উইন্ডোজ 10 এ ie11 এ কাজ করে
লার্স টমাস ব্রেডল্যান্ড

1
@ লার্স থমাসব্রেডল্যান্ড আমি 8.1 + অর্থাৎ 11 জয়ের চেষ্টা করেছি এবং এটি প্রত্যাশার মতো কাজ করে। আপনার জন্য এটি "কী কাজ করে না"?
অ্যানিমেটেডজিফ

এটি কেবল কিছু নির্বাচন করে না। (আমি অন্য উইন 8 এ পরীক্ষা করেছি এবং এটি সেখানে কাজ করে - একই ওএস লেভেল এবং অর্থাত সংস্করণ)
লার্স টমাস ব্রেডল্যান্ড

21

সতর্কতার সাথে পর্যালোচনা করার পরে, আমি এই থ্রেডের মধ্যে এটি আরও পরিষ্কার সমাধান হিসাবে প্রস্তাব করছি:

$("input").focus(function(){
    $(this).on("click.a keyup.a", function(e){      
        $(this).off("click.a keyup.a").select();
    });
});

JsFizz এ ডেমো

সমস্যাটি:

এখানে কিছুটা ব্যাখ্যা দেওয়া হল:

প্রথমে আসুন, ইভেন্টগুলির ক্রমটি একবার দেখে নেওয়া যাক আপনি যখন কোনও ক্ষেত্রের মধ্যে মাউস বা ট্যাব করেন।
আমরা প্রাসঙ্গিক ইভেন্টগুলি এর মতো লগ করতে পারি:

$("input").on("mousedown focus mouseup click blur keydown keypress keyup change",
              function(e) { console.log(e.type); });

ফোকাস ইভেন্ট

দ্রষ্টব্য : আমি এই সমাধানটি ব্যবহারের clickপরিবর্তে mouseupইভেন্ট পাইপলাইনে পরে ঘটে বলে মনে করেছি এবং @ জোকির মন্তব্য অনুযায়ী ফায়ারফক্সে কিছু সমস্যা সৃষ্টি করছে বলে মনে হচ্ছে

কিছু ব্রাউজারগুলি ইভেন্টগুলি mouseupবা clickইভেন্টগুলির সময় কার্সারকে অবস্থান করার চেষ্টা করে । এটি বোঝা যায় যেহেতু আপনি ক্যারেটটি এক অবস্থানে শুরু করতে এবং কিছু পাঠ্যকে হাইলাইট করার জন্য টানতে পারেন। যতক্ষণ না আপনি প্রকৃতপক্ষে মাউসটি উত্তোলন করেন ততক্ষণ এটি ক্যারেটের অবস্থান সম্পর্কে কোনও পদবী তৈরি করতে পারে না। সুতরাং হ্যান্ডেলগুলি focusএমন ফাংশনগুলি খুব তাড়াতাড়ি প্রতিক্রিয়া জানাতে ব্যর্থ হয় যা ব্রাউজারটিকে আপনার অবস্থানকে ওভাররাইড করতে দেয়।

তবে ঘষামাজাটি হ'ল আমরা সত্যই ফোকাস ইভেন্টটি পরিচালনা করতে চাই। এটি আমাদের প্রথমবারের মতো কেউ ক্ষেত্রের মধ্যে প্রবেশ করেছে তা জানতে দেয়। এই বিন্দুর পরে, আমরা ব্যবহারকারীর নির্বাচনের আচরণকে ওভাররাইড করা চালিয়ে যেতে চাই না।

সমাধান:

পরিবর্তে, focusইভেন্ট হ্যান্ডলারের মধ্যে, আমরা দ্রুত click( keyupআগুনে চলে যাওয়া) ইভেন্টগুলিতে (ক্লিক ইন) এবং (ট্যাব ইন) ইভেন্টগুলির জন্য শ্রোতাদের দ্রুত সংযুক্ত করতে পারি ।

দ্রষ্টব্য : কোনও ট্যাব ইভেন্টের কীআপটি আগের ইনপুট ক্ষেত্রে নতুন ইনপুট ক্ষেত্রে আসলে আগুন দেবে

আমরা কেবল একবার ইভেন্টটি চালাতে চাই। আমরা ব্যবহার করতে পারি .one("click keyup), তবে এটি প্রতিটি ইভেন্টের ধরণের জন্য ইভেন্ট হ্যান্ডলারটিকে একবার কল করবে । পরিবর্তে, মাউসআপ বা কীআপ উভয়ই চাপ দেওয়া মাত্রই আমরা আমাদের ফাংশনটি কল করব। আমরা প্রথমে যা করব, তা হ'ল উভয়ের জন্য হ্যান্ডলারগুলি সরিয়ে দেওয়া। এইভাবে আমরা ট্যাবড করেছি বা মোআউট করেছি তাতে কিছু যায় আসে না The ফাংশনটি ঠিক একবার সম্পাদন করা উচিত।

দ্রষ্টব্য : বেশিরভাগ ব্রাউজারগুলি প্রাকৃতিকভাবে কোনও ট্যাব ইভেন্টের সময় সমস্ত পাঠ্য নির্বাচন করে থাকে, তবে অ্যানিমেটেডিফ হিসাবে উল্লেখ করা হয়েছে , আমরা এখনও keyupইভেন্টটি পরিচালনা করতে চাই , অন্যথায় mouseupইভেন্টটি আমরা ট্যাবড করে যে কোনও সময় ঘিরে থাকবে We শ্রোতাদের ছাড়াই আমরা বাছাই প্রক্রিয়া করার সাথে সাথে।

select()ব্রাউজারটি নির্বাচন করার পরে এখন আমরা কল করতে পারি যাতে আমরা ডিফল্ট আচরণকে ওভাররাইড করতে নিশ্চিত sure

অবশেষে, অতিরিক্ত সুরক্ষার জন্য, আমরা যোগ করতে পারেন ঘটনা নামব্যবধান করতে mouseupএবং keyupফাংশন তাই .off()পদ্ধতি অন্য কোনো শ্রোতাকে যে খেলা হতে পারে মুছে যায় না।


আইই 10+, এফএফ 28+, এবং ক্রোম 35+ এ পরীক্ষিত


বিকল্পভাবে, আপনি যদি কোনও ফাংশনonce দিয়ে jQuery প্রসারিত করতে চান যা কোনও সংখ্যক ইভেন্টের জন্য ঠিক একবার গুলি চালায় :

$.fn.once = function (events, callback) {
    return this.each(function () {
        var myCallback = function (e) {
            callback.call(this, e);
            $(this).off(events, myCallback);
        };
        $(this).on(events, myCallback);
    });
};

তারপরে আপনি কোডটি আরও এভাবে সরলীকৃত করতে পারেন:

$("input").focus(function(){
    $(this).once("click keyup", function(e){      
        $(this).select();
    });
});

মজাদার মধ্যে ডেমো


উইন্ডোজ ফায়ারফক্স ৩১ এ আপনার কোডটি কেবলমাত্র অন্য দুটি ক্লিকের পাঠ্য নির্বাচন করে যখন আপনি দুটি পাঠ্য বাক্সের মধ্যে ক্লিক করেন
ভিটানি

1
@ জোসি, আমি কেন এটি পর্যায়ক্রমে চলছে তা নিশ্চিত নই, তবে দেখে মনে হচ্ছে এফএফ clickযে পাইপলাইনের চেয়ে আরও নীচে রয়েছে ইভেন্টে পাঠ্য নির্বাচন পরিচালনা করে mouseup। যেহেতু আমরা ব্রাউজারকে ওভাররাইড করার সর্বাধিক সুযোগ দিতে যত তাড়াতাড়ি নির্বাচনের সমাপ্তিটি পরিচালনা করতে চাই, মাউসআপের পরিবর্তে ক্লিক ব্যবহার করে কৌশলটি করা উচিত। এফএফ, ক্রোম এবং আইই পরীক্ষিত।
কাইলমিট

1
ধন্যবাদ! অবশেষে একটি সমাধান যা সত্যই কার্যকর হয় এবং সমস্ত ব্রাউজারে!
ভিনসেন্ট

1
হ্যাঁ! এটি আমার জন্যও কাজ করেছিল! ধন্যবাদ. এটি অফিশিয়াল উত্তর হওয়া উচিত ছিল
Fandango68

1
@RiZKiT, oneহিসাবে "হ্যান্ডলার প্রতি উপাদান একবার চালাতেই এটিকে কেটে না ঘটনা টাইপ প্রতি । এটি স্বয়ংক্রিয়ভাবে ঘটনা এটি বহিস্কার বন্ধ করে দেবে, কিন্তু অন্যান্য এখনো প্রায় দীর্ঘস্থায়ী করা হবে, এবং offউভয় যাহাই হউক না কেন যত্ন নেয়। দেখুন আমার প্রশ্ন: ফাংশন যা কোনও সংখ্যক ইভেন্টের জন্য একবারে গুলি
চালাবে

13

এটি কাজটি করবে এবং আপনি মাউসের সাহায্যে পাঠ্যের অংশটি আর নির্বাচন করতে পারবেন না এমন সমস্যাটি এড়াতে পারে।

$("input[type=text]").click(function() {
    if(!$(this).hasClass("selected")) {
        $(this).select();
        $(this).addClass("selected");
    }
});
$("input[type=text]").blur(function() {
    if($(this).hasClass("selected")) {
        $(this).removeClass("selected");
    }
});

1
মাউসের সাহায্যে পাঠ্যের অংশটি নির্বাচন করার দক্ষতা রাখা গুরুত্বপূর্ণ। আমি এটি এবং এর এ 1 ব্যবহার করছি
ফিলিবার্ট পেরুস

2
এখানে খুব বেশি চলছে, ব্যবহারকারী 2072367 এর ফোকাস / মাউসআপ সমাধানটি ব্যবহার করুন
জর্জ

@ জর্জি ব্যবহারকারী 2072367 এর ব্যবহারটি বেশ ভাল, তবে এর কিছু গুরুতর ত্রুটি রয়েছে। আমার সমাধানটি পরীক্ষা করুন (:
অ্যানিমেটেডজিফ

6

এই সংস্করণটি আইওএসে কাজ করে এবং উইন্ডোজ ক্রোমে স্ট্যান্ডার্ড ড্রাগ-টু-সিলেকশনও ঠিক করে

var srcEvent = null;

$("input[type=text],input[type=number]")

    .mousedown(function (event) {
        srcEvent = event;
    })

    .mouseup(function (event) {
        var delta = Math.abs(event.clientX - srcEvent.clientX) 
                  + Math.abs(event.clientY - srcEvent.clientY);

        var threshold = 2;
        if (delta <= threshold) {
                   try {
                        // ios likes this but windows-chrome does not on number fields
                        $(this)[0].selectionStart = 0;
                        $(this)[0].selectionEnd = 1000;
                    } catch (e) {
                        // windows-chrome likes this
                        $(this).select();
                    }
        }
    });

http://jsfiddle.net/Zx2sc/2/



5

এই সমাধানগুলির বেশিরভাগ সমস্যা হ'ল ইনপুট ক্ষেত্রে কার্সার অবস্থান পরিবর্তন করার সময় এগুলি সঠিকভাবে কাজ করে না।

onmouseupঘটনা ক্ষেত্র, যার পরে বহিস্কার করা হয় মধ্যে কার্সারটি অবস্থিত পরিবর্তন onfocus(অন্তত Chrome এবং মুক্তিযোদ্ধা মধ্যে)। আপনি যদি নিঃশর্তভাবে বাতিল করে দেন mouseupতবে ব্যবহারকারী মাউস দিয়ে কার্সার অবস্থান পরিবর্তন করতে পারবেন না।

function selectOnFocus(input) {
    input.each(function (index, elem) {
        var jelem = $(elem);
        var ignoreNextMouseUp = false;

        jelem.mousedown(function () {
            if (document.activeElement !== elem) {
                ignoreNextMouseUp = true;
            }
        });
        jelem.mouseup(function (ev) {
            if (ignoreNextMouseUp) {
                ev.preventDefault();
                ignoreNextMouseUp = false;
            }
        });
        jelem.focus(function () {
            jelem.select();
        });
    });
}
selectOnFocus($("#myInputElement"));

mouseupক্ষেত্রটিতে বর্তমানে ফোকাস না থাকলে কোড শর্তাধীনভাবে ডিফল্ট আচরণকে আটকাবে । এটি এই ক্ষেত্রে কাজ করে:

  • ক্ষেত্রের উপর দৃষ্টি নিবদ্ধ না করা হলে ক্লিক করা
  • ক্ষেত্রের ফোকাস করার সময় ক্লিক করা
  • মাঠে ট্যাবিং

আমি এটি ক্রোম 31, এফএফ 26 এবং আইই 11 এর মধ্যে পরীক্ষা করেছি।


এটি ক্লিক ইভেন্টগুলির জন্য নিখুঁতভাবে কাজ করে, তবে আমি যদি পরবর্তী ইনপুট ক্ষেত্রে যেতে ট্যাবটি ব্যবহার করি তবে আমি দেখতে পাচ্ছি যে সামগ্রীটি নির্বাচিত হয়ে গেছে এবং ঠিক পরে ডি-সিলেক্ট করা হয়েছে
টোএক্স ৮

4

এই থ্রেডটি পড়ে একটি দুর্দান্ত সমাধান খুঁজে পেয়েছে

$(function(){

    jQuery.selectText('input:text');
    jQuery.selectText('input:password');

});

jQuery.extend( {
    selectText: function(s) { 
        $(s).live('focus',function() {
            var self = $(this);
            setTimeout(function() {self.select();}, 0);
        });
    }
});


অন্যান্য সমস্ত এইচটিএমএল 5 পাঠ্যের প্রকারগুলি সম্পর্কে ভুলে যাবেন না, যেমন 'ইনপুট [টাইপ = ইমেল]'
জ্যামিবারো

3

আমি ২০১ late সালের শেষ দিক থেকে আসছি এবং এই কোডটি কেবল jquery এর সাম্প্রতিক সংস্করণগুলিতে কাজ করে (এই ক্ষেত্রে jquery-2.1.3.js)।

if ($(element).is("input")) {
    $(element).focus(function () {
        $(element).select();
    });
}

2

আমি এফএফ 16.0.2 এবং jquery 1.8.3 ব্যবহার করছি, উত্তরের সমস্ত কোড কার্যকর হয়নি।
আমি এই জাতীয় কোড ব্যবহার করি এবং কাজ করি।

$("input[type=text]").focus().select();

4
এটি প্রশ্নের উত্তর দেয় না, যখন ব্যবহারকারী ক্ষেত্রের দিকে দৃষ্টি নিবদ্ধ করে কোনও ইনপুট বাক্সের সামগ্রীগুলি কীভাবে নির্বাচন করবেন । এটি তাত্ক্ষণিকভাবে ফোকাস করবে এবং ব্যবহারকারীর ইনপুট ছাড়াই কোডটি নির্বাচন করবে।
সালুস

@ সলুয়েস আমি কি বোঝাতে চাইছি না? প্রশ্নটি যখন ক্ষেত্রটি নির্বাচন করবে তখন যা চান তা হ'ল বর্তমান পাঠ্য নির্বাচন করা হয়। এবং আমার কোড করা উচিত। আমি এমনকি আমার প্রকল্পের জন্য এটি ব্যবহার করি, সময় হিসাবে যখন আমি এই উত্তরটি লিখি।
GusDeCooL

1
এই কোডটি চালিত হওয়ার সময় সমস্ত কিছুকে ফোকাস করবে এবং নির্বাচন করবে, কিন্তু কোডটি এবং নিজেই, কোডটি কোনও ব্যবহারকারী-উত্পন্ন ইভেন্টের সাথে আবদ্ধ নয় যেমন পাঠ্যবক্সে ক্লিক করা। উদাহরণস্বরূপ, $("input[type=text]").on('click', function () { $(this).focus.select(); })ব্যবহারকারী যখন বাক্সটি ক্লিক করে তখন ফোকাসের কারণ ঘটছে এবং নির্বাচন ঘটছে, কারণ ব্যবহারকারী যখন বাক্সটি ক্লিক করে তখন এটি কার্যকর করা হয়। ইভেন্ট হ্যান্ডলার ছাড়া কোডটি প্রশ্নের উত্তর দেয় না, তাই ডাউনভোট এবং মন্তব্য। মূলত, আপনি "সমস্ত বর্তমান পাঠ্য নির্বাচিত" পেয়েছেন তবে "যখন তিনি ক্ষেত্র নির্বাচন করেন" অংশটি নয়।
সালুস

1
@ গুসডিকুল খুব মজাজনকভাবে (যদিও তিনি এটি চেয়েছিলেন ঠিক তেমন নয়) আপনি যেমনটি করেছেন তেমন ফল পেতে চাইছি :)
রবি অ্যাভারিল

2
var timeOutSelect;
$("input[type=text]").focus(function() { 
        var save_this = $(this);
        clearTimeout(timeOutSelect);
        timeOutSelect = window.setTimeout (function(){ 
                save_this.select(); 
        }, 100);
});

আপনি যদি দুটি ইনপুটগুলির মধ্যে দ্রুত স্যুইচ করেন তবে ক্লিয়ারটাইমআউটটি আরও সুরক্ষার জন্য ব্যবহার করুন .. ক্লিয়ারটাইমআউট পুরানো টাইমআউট সাফ করুন ...


আরও তথ্যের সাথে সম্পাদনা করুন। কেবল-কোড এবং "এটি চেষ্টা করুন" উত্তরগুলি নিরুৎসাহিত করা হচ্ছে, কারণ সেগুলিতে কোনও অনুসন্ধানযোগ্য সামগ্রী নেই এবং কেন কারও "এটি চেষ্টা করা উচিত" তা ব্যাখ্যা করবেন না। আমরা এখানে জ্ঞানের উত্স হতে চেষ্টা করি।
ব্রায়ান টম্পসেট - :5 莱恩

2

নেটিভ জাভাস্ক্রিপ্ট নিয়ে দুর্দান্ত কাজ করে select()

$("input[type=text]").focus(function(event) {
   event.currentTarget.select();
});

বা সাধারণভাবে:

$("input[type=text]")[0].select()

1

অথবা আপনি কেবল <input onclick="select()">নিখুঁতভাবে ওয়ার্কস ব্যবহার করতে পারেন ।


না এটা হয় না। এটি পুরোটি নির্বাচনের জন্য কাজ করে। তবে ম্যানুয়ালি পাঠ্যের একটি অংশ নির্বাচন করার চেষ্টা করুন, আপনি এটি করতে সক্ষম হবেন না।
সুজয় ফাদকে


0
<script>$.ready( $("input[type=text]").attr("onclick" , "this.select()"));<script>

এটি সম্ভবত নিম্ন মানের উত্তর হিসাবে চিহ্নিত করা হবে কারণ এতে কী চলছে তার কোনও ব্যাখ্যা নেই।
গণ্ডগোল_রোস্টার

তোমার $.ready সঠিক নয়। attrদস্তাবেজটি প্রস্তুত না হওয়া পর্যন্ত আপনাকে বিলম্ব করতে এটিতে আপনাকে একটি ফাংশন পাস করতে হবে । আপনি অবিলম্বে এটি করছেন তখন উপাদান সংগ্রহটি এতে পাস করছেন $.ready
doug65536

এছাড়াও, 'অনক্লিক' এড়িয়ে চলুন, বিশেষত এইভাবে। ব্যবহার addEventListener
ডগ 65536

0

আমি সর্বদা requestAnimationFrame()অভ্যন্তরীণ পোস্টের প্রক্রিয়াগুলিতে ঝাঁপিয়ে পড়তে ব্যবহার করি এবং এটি ফায়ারফক্সে পুরোপুরি কাজ করে। Chrome এ পরীক্ষা করা হয়নি।

$("input[type=text]").on('focus', function() {
    requestAnimationFrame(() => $(this).select());
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.