ফোকাস ইনপুট বক্স অন লোড


98

পৃষ্ঠা লোডে কোনও নির্দিষ্ট ইনপুট বাক্সে কার্সারটি কীভাবে ফোকাস করা যায়?

প্রাথমিক পাঠ্য মানটিও ধরে রাখা এবং ইনপুট শেষে কার্সার স্থাপন করা কি প্রতিক্রিয়াশীল?

<input type="text"  size="25" id="myinputbox" class="input-text" name="input2" value = "initial text" />

উত্তর:


174

আপনার প্রশ্নের দুটি অংশ আছে।

1) পৃষ্ঠা লোডে কোনও ইনপুট কীভাবে ফোকাস করবেন?

আপনি কেবল ইনপুটটিতে autofocusবৈশিষ্ট্য যুক্ত করতে পারেন can

<input id="myinputbox" type="text" autofocus>

তবে এটি সমস্ত ব্রাউজারে সমর্থিত নাও হতে পারে, তাই আমরা জাভাস্ক্রিপ্ট ব্যবহার করতে পারি।

window.onload = function() {
  var input = document.getElementById("myinputbox").focus();
}

2) ইনপুট পাঠ্যের শেষে কার্সারটি কীভাবে রাখবেন?

অন্য এসও উত্তর থেকে কিছু ধার করা কোড সহ এখানে একটি নন-জিক্যুরি সমাধান ।

function placeCursorAtEnd() {
  if (this.setSelectionRange) {
    // Double the length because Opera is inconsistent about 
    // whether a carriage return is one character or two.
    var len = this.value.length * 2;
    this.setSelectionRange(len, len);
  } else {
    // This might work for browsers without setSelectionRange support.
    this.value = this.value;
  }

  if (this.nodeName === "TEXTAREA") {
    // This will scroll a textarea to the bottom if needed
    this.scrollTop = 999999;
  }
};

window.onload = function() {
  var input = document.getElementById("myinputbox");

  if (obj.addEventListener) {
    obj.addEventListener("focus", placeCursorAtEnd, false);
  } else if (obj.attachEvent) {
    obj.attachEvent('onfocus', placeCursorAtEnd);
  }

  input.focus();
}

আমি কীভাবে jQuery দিয়ে এটি সম্পাদন করব তার একটি উদাহরণ এখানে।

<input type="text" autofocus>

<script>
$(function() {
  $("[autofocus]").on("focus", function() {
    if (this.setSelectionRange) {
      var len = this.value.length * 2;
      this.setSelectionRange(len, len);
    } else {
      this.value = this.value;
    }
    this.scrollTop = 999999;
  }).focus();
});
</script>

4
প্রথম কোড ব্লকটি প্রস্তাবিত আসলে বিদ্যমান মানের শেষে কার্সারটি রাখে, এটি ভাল কাজ করে। আমি আপনার সাহায্যের প্রশংসা করি
কোডেক্স

46

কেবলমাত্র শীর্ষস্থানীয় - আপনি এখন এটি সমর্থন করে এমন ব্রাউজারগুলির জন্য জাভাস্ক্রিপ্ট ছাড়াই এইচটিএমএল 5 দিয়ে এটি করতে পারেন:

<input type="text" autofocus>

আপনি সম্ভবত এটি দিয়েই শুরু করতে চান এবং পুরানো ব্রাউজারগুলির ফ্যালব্যাক সরবরাহ করার জন্য এটি জাভাস্ক্রিপ্ট দিয়ে তৈরি করতে চান।


জেনে ভালো লাগল, এটি কি ইতিমধ্যে কার্সারটিকে ইনপুট ক্ষেত্রে সর্বশেষ অবস্থানে নিয়ে যায়?
ক্যামিলো দাজ রেপকা

4
আমি মনে করি না যে @ কোডেক্স 73 এইচটিএমএল 5 তে স্থানধারক বৈশিষ্ট্যটি যা করতে পারে তা সম্পাদন করার চেষ্টা করছে। দেখে মনে হচ্ছে তিনি বর্তমানে ইনপুটে যে কোনও মান রয়েছে তার কার্সরটি স্বয়ংক্রিয়ভাবে অবস্থান নিতে চায়।
জেসেগাবিন

4
আপনি ঠিক বলেছেন, এটি কোনও সম্পূর্ণ সমাধান নয়। তবে এটি বেশ কয়েকটি জিনিস সমাধান করে (অনলোড অটোফোকাস এবং স্থানধারক পাঠ্য)।
ডেভিড ক্যালহাউন

নোট করুন যে 1/2019 অনুসারে, আইওএস-এ সাফারি এটিকে সমর্থন করে না: caniuse.com/#feat=autofocus
স্পার্কার


3
function focusOnMyInputBox(){                                 
    document.getElementById("myinputbox").focus();
}

<body onLoad="focusOnMyInputBox();">

<input type="text"  size="25" id="myinputbox" class="input-text" name="input2" onfocus="this.value = this.value;" value = "initial text">

2

এটি করার একটি বহনযোগ্য উপায় হ'ল এটির মতো একটি কাস্টম ফাংশন (ব্রাউজারের পার্থক্যগুলি পরিচালনা করতে )

তারপরে onloadআপনার <body>ট্যাগের শেষে হ্যান্ডলার সেটআপ করুন , যেমন জেসেগাভিন লিখেছেন:

window.onload = function() {
  document.getElementById("myinputbox").focus();
}


1

খুব সহজ এক লাইন সমাধান:

<body onLoad="document.getElementById('myinputbox').focus();">

0

এটি আমার পক্ষে ভাল কাজ করে:

<form name="f" action="/search">
    <input name="q" onfocus="fff=1" />
</form>

fff একটি বিশ্বব্যাপী পরিবর্তনশীল হবে যা নামটি একেবারেই অপ্রাসঙ্গিক এবং যার উদ্দেশ্য সেই ইনপুটটিতে জোর দেওয়ার জন্য জেনেরিক অনলোড ইভেন্ট বন্ধ করা।

<body onload="if(!this.fff)document.f.q.focus();">
    <!-- ... the rest of the page ... -->
</body>

থেকে: http://webreflection.blogspot.com.br/2009/06/inputfocus-something-really-annoying.html


0

আপনি যদি কোনও কারণে বডি ট্যাগ যুক্ত করতে না পারেন তবে আপনি ফর্মের পরে এটি যুক্ত করতে পারেন:

<SCRIPT type="text/javascript">
    document.yourFormName.yourFieldName.focus();
</SCRIPT>

0

চেষ্টা করুন:

জাভাস্ক্রিপ্ট বিশুদ্ধ:

[elem][n].style.visibility='visible';
[elem][n].focus();

জ্যাকারি:

[elem].filter(':visible').focus();

0

আপনার js এর শীর্ষে এটি যুক্ত করুন

var input = $('#myinputbox');

input.focus();

অথবা এইচটিএমএল করতে

<script>
    var input = $('#myinputbox');

    input.focus();
</script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.