jQuery: বাটনগুলি বাদ দিয়ে প্রথম দৃশ্যমান ইনপুট / সিলেক্ট / টেক্সারিয়াকে কীভাবে সন্ধান করবেন?


88

আমি চেষ্টা করেছিলাম

$(":input:not(input[type=button],input[type=submit],button):visible:first")

কিন্তু এটি কিছুই খুঁজে পায় না।

আমার ভুল কি?

ইউপিডি: আমি এটি $ (ডকুমেন্ট)। লোড () এ কার্যকর করি

<script type="text/javascript">
$(window).load(function () {
  var aspForm  = $("form#aspnetForm");
  var firstInput = $(":input:not(input[type=button],input[type=submit],button):visible:first", aspForm);
  firstInput.focus();
});
</script>

এবং ডিবাগটিতে আমি দেখতে পাই যে ফার্স্টইনপুটটি খালি রয়েছে।

ইউপিডি 2: আমি শেয়ারপয়েন্টের অধীনে চলমান এএসপি.নেট পৃষ্ঠায় আছি।

আমি এখনও অবধি খুঁজে পেয়েছি যে কিছু উপাদানগুলির জন্য এটি তাদের সন্ধান করে (নির্দিষ্ট ব্যক্তিদের জন্য) এবং কারও জন্য এটি খুঁজে পায় না। :(


": ইনপুট" এর পরিবর্তে "ইনপুট" চেষ্টা করবেন?
অ্যালেক

ভাল কাজ করা উচিত। আপনার সমস্যা অন্য কোথাও রয়েছে lies আপনি এই নির্বাহ না তো আগে$(document) হয় ready()?
বালুসিসি

অনুসন্ধান করার জন্য আপনার কি কোনও নির্দিষ্ট এইচটিএমএল আছে?
শিকি

প্রথম ইনপুট হতে পারে type="hidden"? ডান ক্লিক ক্লিক পৃষ্ঠা এবং উত্স দেখুন। উত্পন্ন HTML এর পাশাপাশি গুরুত্বপূর্ণ। এটি এবং যথাযথ এসএসসিসিই ছাড়া এটি অন্ধকারে শুটিং করছে।
বালাসসি

উত্তর:


168

আপনি যেগুলি চান ( ডেমো ) কেবল তাদের লক্ষ্যবস্তু করবেন না কেন ?

$('form').find('input[type=text],textarea,select').filter(':visible:first');

সম্পাদনা করুন

অথবা jQuery ব্যবহার করুন: ফর্ম বংশধরদের ফিল্টার করতে ইনপুট নির্বাচনকারী।

$('form').find('*').filter(':input:visible:first');

4
চেকবাক্স? রেডিও? পাসওয়ার্ড? নতুন এইচটিএমএল 5 ইনপুট প্রকারের উল্লেখ না করা।
বালুসসি

9
@ বালুসসি '(' ফর্ম ') find সন্ধান করুন (': ইনপুট ') filter ফিল্টার (': দৃশ্যমান: প্রথম ')
আবে পেট্রিলো

4
এটি কিছুটা ডিগ্রিতে কাজ করার সময় এটি ট্যাবিনডেক্স বৈশিষ্ট্যটিকে উপেক্ষা করে না।
শ্রুতিমধুরতা

4
ছোট নিটপিক তবে দরকারী সংযোজন: ': দৃশ্যমান: প্রথম', ': দৃশ্যমান: সক্ষম: প্রথম' এর পরিবর্তে আরও ভাল ফিল্টার হবে কারণ শীর্ষের উপাদানটি কিছু ক্ষেত্রে অক্ষম হতে পারে এবং ফোকাসটি সেখানে স্থানান্তরিত করতে পারে না।
প্রহ্লাদ ইয়েরি

4
@ প্রহ্লাদইয়েরি সম্ভবত পাঠ্যভাবে বাদ দিন':input:visible:enabled:not([readonly]):first'
জাস্টিনস্টল

13

JQuery কোড ঠিক আছে। আপনাকে অবশ্যই উইন্ডো লোড ইভেন্টে না হয়ে প্রস্তুত হ্যান্ডলারে চালিত করতে হবে।

<script type="text/javascript">
$(function(){
  var aspForm  = $("form#aspnetForm");
  var firstInput = $(":input:not(input[type=button],input[type=submit],button):visible:first", aspForm);
  firstInput.focus();
});
</script>

হালনাগাদ

আমি করিম 79৯-এর উদাহরণ দিয়ে চেষ্টা করেছি (উদাহরণের জন্য ধন্যবাদ) এবং এটি ভাল কাজ করেছে: http://jsfiddle.net/2sMfU/


4
ধন্যবাদ @ বালুসসি। আমি এখন নিজেকে গুলি করতে যাচ্ছি। আমি নিজেকে ঘৃণা করি. ওয়ার্কিং কোড নিয়ে গোলযোগ না করে আমি শেষ ঘন্টাটি কাটিয়ে দিতে পারি। আমি আমার কুকুরকে খাওয়াতে পারি, আমার রান্নাঘর পরিষ্কার করতে পারতাম। আমি অর্জন করতে পারে অনেক জিনিস আছে। এখন আমার যা কিছু আছে তা ব্যথা। বিদায়, চিরকাল .... এবং হ্যাঁ, আমার কথা শোনা উচিত ছিল
karim79

@ করিম: রফেল আপনাকে স্বাগতম :) বিটিডব্লিউ: আমি ইতিমধ্যে আমার বাচ্চাদের স্নান করেছি, তাদের বিছানায় নিয়ে এসেছি, কুকুর এবং বিড়ালকে
খাওয়িয়েছি

7

এটি আমার উপরের সংক্ষিপ্তসার এবং আমার জন্য নিখুঁতভাবে কাজ করে। তথ্যের জন্য ধন্যবাদ!

<script language='javascript' type='text/javascript'>
    $(document).ready(function () {
        var firstInput = $('form').find('input[type=text],input[type=password],input[type=radio],input[type=checkbox],textarea,select').filter(':visible:first');
        if (firstInput != null) {
            firstInput.focus();
        }
    });
</script>

3

@ মট্টির উত্তরের তুলনায় এটি একটি উন্নতি কারণ jQuery 1.5 1.5.2 হিসাবে কোনও উপাদান নির্দিষ্ট করে না এমন উপাদান :textনির্বাচন inputকরে type(যার ক্ষেত্রে type="text"বোঝানো হয়েছে):

$('form').find(':text,textarea,select').filter(':visible:first')

1

এখানে আমার সমাধান। কোডটি অনুসরণ করার পক্ষে যথেষ্ট সহজ হওয়া উচিত তবে এখানে ধারণাটি রয়েছে:

  • সমস্ত ইনপুট, নির্বাচন এবং টেক্সারিয়াস পান
  • সমস্ত বোতাম এবং লুকানো ক্ষেত্রগুলি ফিল্টার করুন
  • শুধুমাত্র সক্ষম, দৃশ্যমান ক্ষেত্রগুলিতে ফিল্টার করুন
  • প্রথমটি নির্বাচন করুন
  • নির্বাচিত ক্ষেত্রটি ফোকাস করুন

কোড:

function focusFirst(parent) {
    $(parent).find('input, textarea, select')
        .not('input[type=hidden],input[type=button],input[type=submit],input[type=reset],input[type=image],button')
        .filter(':enabled:visible:first')
        .focus();
}

তারপরে আপনার পিতামাতার উপাদান বা নির্বাচকের সাথে কেবল ফোকাসফর্স্টকে কল করুন।

নির্বাচক:

focusFirst('form#aspnetForm');

উপাদান:

var el = $('form#aspnetForm');
focusFirst(el);

0

আপনি কোড নীচে চেষ্টা করতে পারেন ...

$(document).ready(function(){
    $('form').find('input[type=text],textarea,select').filter(':visible:first').focus();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<form>
<input type="text" />
<input type="text" />
<input type="text" />
<input type="text" />
<input type="text" />
    
<input type="submit" />
</form>

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