Jquery .on () ইভেন্ট জমা দিন


105

আমি সমস্যা আছে .on()। আমার একাধিক ফর্ম-উপাদান রয়েছে (সাথে ফর্মগুলি class="remember"), এছাড়াও আমি form.rememberএজেএক্স ব্যবহার করে অন্য একটি যুক্ত করি । সুতরাং, আমি এটি জমা দেওয়ার ইভেন্টটিকে হ্যান্ডেল করতে চাই:

$('form.remember').on('submit',function(){...}) 

তবে এজ্যাক্সের সাথে যুক্ত ফর্মটি এটি দিয়ে কাজ করে না।

সমস্যা কোথায়? এটা কি বাগ?


10
চেষ্টা করুন$(document).on('submit','form.remember',function(){...})
সেরজিও

4
@ সার্জিও documentনিকটতম স্থির পিতামাতার সাথে প্রতিস্থাপন করুন ।
মার্ক বাইজেনস

উত্তর:


222

আপনার দস্তাবেজ পর্যায়ে ইভেন্ট প্রতিনিধি করা দরকার

$(document).on('submit','form.remember',function(){
   // code
});

$('form.remember').on('submit'ঠিক তেমন কাজ করুন $('form.remember').submit(আপনি যখন ব্যবহার করবেন $(document).on('submit','form.remember'তখন এটি পরে যুক্ত করা ডিওএমের জন্যও কাজ করবে।


24
মনে রাখবেন যে $(document).onতুলনায় অনেক কম কর্মক্ষমতা আছে $('form.remember').on('submit'। এটি এখন নথিতে জমা দেওয়ার সমস্ত ইভেন্টের জন্য শুনতে হবে । শোনার চেয়ে সুযোগটি সামান্যই সীমাবদ্ধ করা আরও ভাল on document, যদি সম্ভব হয়
লিয়াম

7
$ ('বডি') on আমার সমস্যাটি সমাধান করুন
ওলটিন টেমিটোপ

যদিও @ লিয়াম সঠিক, $ (ডকুমেন্ট) .আজাক্স রেন্ডারযুক্ত উপাদানগুলির সিআরইউডি অপারেশনের জন্য এখনও কার্যকর।
নরিয়েল ক্রুজ

40

একই symtoms নিয়ে আমার সমস্যা ছিল। আমার ক্ষেত্রে, এটি প্রমাণিত হয়েছে যে আমার জমা ফাংশনটিতে "রিটার্ন" বিবৃতিটি অনুপস্থিত ছিল।

উদাহরণ স্বরূপ:

 $("#id_form").on("submit", function(){
   //Code: Action (like ajax...)
   return false;
 })

4
নোট যা return false;ফর্ম জমা দেবে না। ফর্ম ব্যবহার জমা দেওয়ার জন্য return true;
কাই নোক

0

এখানে সমস্যাটি হ'ল "চালু" সমস্ত সময়ে প্রয়োগ করা উপাদানগুলির জন্য প্রয়োগ করা হয় IME আপনি যখন একটি উপাদান গতিশীলভাবে তৈরি করেন, আপনাকে আবার চালু করতে হবে:

$('form').on('submit',doFormStuff);

createNewForm();

// re-attach to all forms
$('form').off('submit').on('submit',doFormStuff);

যেহেতু ফর্মগুলির সাধারণত নাম বা আইডি থাকে, আপনি কেবল নতুন ফর্মের সাথেও সংযুক্ত করতে পারেন। যদি আমি প্রচুর গতিশীল স্টাফ তৈরি করি তবে আমি একটি সেটআপ বা বাইন্ড ফাংশন অন্তর্ভুক্ত করব:

function bindItems(){
    $('form').off('submit').on('submit',doFormStuff); 
    $('button').off('click').on('click',doButtonStuff);
}   

সুতরাং আপনি যখনই কিছু তৈরি করেন (সাধারণত আমার ক্ষেত্রে বোতামগুলি), আমি পৃষ্ঠায় সমস্ত কিছু আপডেট করার জন্য কেবল বাইন্ডআইটেমগুলি কল করি।

createNewButton();
bindItems();

আমি 'বডি' বা নথির উপাদানগুলি ব্যবহার করতে পছন্দ করি না কারণ ট্যাবগুলি এবং মডেলগুলির সাথে তারা ঘুরে বেড়ায় এবং আপনি প্রত্যাশা করেন না এমন কাজ করে। আমি সর্বদা চেষ্টা করি যতটা সম্ভব সুনির্দিষ্ট হওয়ার জন্য যতক্ষণ না এটি একটি সহজ 1 পৃষ্ঠার প্রকল্প।

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