jQuery পিতামাতার ফর্ম খুঁজে


219

আমার এই এইচটিএমএল আছে

<ul>
    <li><form action="#" name="formName"></li>
    <li><input type="text" name="someName" /></li>
    <li><input type="text" name="someOtherName" /></li>
    <li><input type="submit" name="submitButton" value="send"></li>
    <li></form></li>
</ul>

আমি যে ফর্মটির input[name="submitButton"]অংশ তা আমি কীভাবে নির্বাচন করতে পারি ? (আমি যখন সাবমিট বাটনে ক্লিক করি তখন আমি ফর্মটি নির্বাচন করতে এবং এতে কিছু ক্ষেত্র যুক্ত করতে চাই)

উত্তর:


484

আমি ব্যবহারের পরামর্শ দেব closest, যা নিকটতম মিলে যাওয়া প্যারেন্ট উপাদান নির্বাচন করে:

$('input[name="submitButton"]').closest("form");

নাম দ্বারা ফিল্টারিংয়ের পরিবর্তে, আমি এটি করব:

$('input[type=submit]').closest("form");

2
আমরা কি সূচক অনুসারে যোগ করা উচিত? '$ ( "ইনপুট [টাইপ = জমা]") নিকটতম ( "ফর্ম");।' ফর্মগুলির একটি অ্যারের প্রদান করে।
sergzach

আমি উপরেরটি এইভাবে ব্যবহার করার চেষ্টা করছি: $ ("। প্রতিটি ইমজি")। ক্লিক করুন (ফাংশন () {$ (এটি)। ক্লোজস্ট ("ফর্ম")। শো ();}); তবে আমি এটি কাজে লাগাতে পারি না। : /
অ্যালিসো

2
পিটারজওয়েস্ট উত্তরটি এর চেয়ে ভাল।
গাগারাইন

এইচটিএমএল 5 তে একটি নতুন 'ফর্ম' বৈশিষ্ট্য রয়েছে যা আপনাকে পিতামাতার ফর্মের বাইরে উপাদান রাখতে দেয়। এটি প্রথমে পরীক্ষা করা উচিত।
mcintyre321

56

আপনি যে ফর্ম রেফারেন্সটি সমস্ত ইনপুটগুলিতে বিদ্যমান তা ব্যবহার করতে পারেন, এটি .closest()ক্রোম এবং আইই 8-তে 5-10 গুণ বেশি দ্রুত)। আই 6 এবং 7 এও কাজ করে।

var input = $('input[type=submit]');
var form = input.length > 0 ? $(input[0].form) : $();

2
আপনি IE8 উল্লেখ। এটি 6, 7 এবং 9 সংস্করণগুলিতেও কাজ করে?
সনি

1
@ পেটারজওয়েস্ট উল্লিখিত হিসাবে এটি অনেক ভাল এবং দ্রুত। আই আই Re রে আমি মনে করি। ইনপুট উপাদানগুলির আইফো 4 এ ছিল, দুর্ভাগ্যক্রমে নেটস্কেপ দেব পৃষ্ঠাটি এখন চলে গেছে ... এবং কে মজিলা পরীক্ষা করবে।
ম্যাকিয়েজ Łopaciński


আপনার কোডটি সংক্ষিপ্ত রাখার জন্য আপনি সম্ভবত শর্টহ্যান্ড ব্যবহার করেছেন তবে এই উদাহরণে এটি আপনি যে প্রকৃত কোডটি প্রদর্শন করতে চান তা কেবল বিচ্যুত হয় (বিশেষত শর্টহ্যান্ডের সাথে অপরিচিত লোকদের জন্য)। আমি নিয়মিত ব্যবহারের পক্ষে চাই যদি ()।
অয়নঅফটাইম

আমি বলব যে সমাধানের সাথে খুব বেশি গোলমাল রয়েছে। আপনি যদি এটির সাথে যান (নীচে আমার সমাধান - হ্যাঁ এটি একটি বিজ্ঞাপন :)): স্ট্যাকওভারফ্লো.com / a / 18921404 / 261332 , আপনার তখন এ জাতীয় জটিলতার দরকার নেই, কারণ এটি ঠিক তখনই কাজ করবে যখন এটি অনুমিত হবে এবং অন্যথায় কিছুই করবেন না।
ব্যবহারকারীফিউজার

17

আমার কাছে এটি দেখতে সবচেয়ে সহজ / দ্রুততম:

$('form input[type=submit]').click(function() { // attach the listener to your button
   var yourWantedObjectIsHere = $(this.form);   // use the native JS object with `this`
});

2
আমার জন্য, $(this.form)সবচেয়ে ভাল সমাধানটি ব্যবহার করা
জাপান 1968


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