Change ইনপুট` উপাদানটির জন্য "পরিবর্তন" এবং "ইনপুট" ইভেন্টের মধ্যে পার্থক্য


108

কেউ কি বলতে পারবেন কি এর মধ্যে পার্থক্য changeএবং inputঘটনা?

আমি এগুলি যুক্ত করার জন্য jQuery ব্যবহার করছি:

$('input[type="text"]').on('change', function() {
    alert($(this).val());
})

এটি inputপরিবর্তে সঙ্গে কাজ করে change

ফোকাসের তুলনায় ইভেন্টের অর্ডারে কিছু পার্থক্য থাকতে পারে?


rakshasingh.weebly.com/1/post/2012/12/... লক্ষ্য করুন oninput পুরোনো ব্রাউজারে সমর্থিত নয়। আপনি তখন ব্যবহার করতে পারেন: অনুরুপ, অনপাস্ট এবং অনস্কিপকে একটি কর্মফল হিসাবে। PS: অনিনপুট ইভেন্টটি আইই 9 তেও বগিযুক্ত এবং এটি মুছে ফেলার জন্য চালিত হয় না।
উ। ওল্ফ

1
ইনপুটটি প্রায়শই প্রায়শই কীপ্রেসের পরে জ্বলে ওঠে, যখন ইনপুটটি ঝাপসা হয়ে গেলে মূলত আগুন লাগে এবং ইনপুটটি কেন্দ্রীভূত করার সময় মানটি তা নয়।
ডান্ডাভিস

inputঘটনা আরো পেস্ট ধারন করে না। দেখুন stackoverflow.com/questions/15727324/...
অ্যান্টনি

1
টিএলডিআর: টাইপ করার সাথে সাথে ইনপুট ফায়ার করে, বাইরে ক্লিক করলে আগুন পরিবর্তন করুন
মুহাম্মদ উমার

উত্তর:


117

এই পোস্ট অনুসারে :

  • oninput ইভেন্টটি ঘটে যখন ব্যবহারকারীর ইন্টারফেসের মাধ্যমে কোনও উপাদানটির পাঠ্য সামগ্রী পরিবর্তন করা হয়।

  • onchangeযখন নির্বাচন, চেক করা রাষ্ট্র বা কোনও উপাদানের সামগ্রী পরিবর্তিত হয় তখন ঘটে । কিছু ক্ষেত্রে, এটি তখনই ঘটে যখন উপাদান ফোকাসটি হারাবে বা যখন return(এন্টার) টিপুন এবং মান পরিবর্তন করা হবে। Onchange অ্যাট্রিবিউট ব্যবহার করা যেতে পারে: <input>, <select>, এবং <textarea>

টি এল; ডিআর:

  • oninput: পাঠ্য সামগ্রীতে যে কোনও পরিবর্তন
  • onchange:
    • যদি এটি হয় <input />: পরিবর্তন + ফোকাস হারান
    • যদি এটি হয় <select>: বিকল্পটি পরিবর্তন করুন

$("input, select").on("input", function () {
    $("pre").prepend("\nOn input. | " + this.tagName + " | " + this.value);
}).on("change", function () {
    $("pre").prepend("\nOn change | " + this.tagName + " | " + this.value);
}).on("focus", function () {
    $("pre").prepend("\nOn focus | " + this.tagName + " | " + this.value);
}).on("blur", function () {
    $("pre").prepend("\nOn blur | " + this.tagName + " | " + this.value);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
<select>
  <option>Alice</option>
  <option>Bob</option>
  <option>Carol</option>
  <option>Dave</option>
  <option>Emma</option>
</select>
<pre></pre>


7
আমি এখনও দুজনের মধ্যে পার্থক্য সম্পর্কে অস্পষ্ট। আপনার বিবরণ থেকে এগুলি খুব সাদৃশ্যপূর্ণ।
জাস্টিন মরগান

10
@ জাস্টিনমোরগান জেএসফিডাল উদাহরণের মতো, প্রতিটি পাঠ্য পরিবর্তনের ক্ষেত্রে onchangeঘটে থাকে "যখন উপাদান ফোকাস হারিয়ে ফেলে" oninputদেখা দেয়।
আয়নিক বিজাউ

1
পার্থক্যটি হ'ল অনিনপুট ইভেন্টটি উপাদানটির মান পরিবর্তিত হওয়ার সাথে সাথে ঘটে, যখন উপাদানটি পরিবর্তিত হওয়ার পরে উপাদান ফোকাস হারাতে অনুরুপ হয়।
নিনোলোপেজ ওয়েব

1
অন্য কথায়, "ইনপুট" তাত্ক্ষণিকভাবে ট্রিগার করা হয় যখন কোনও অক্ষর পরিবর্তন করা, মুছে ফেলা বা যুক্ত করা হয় যখন "পরিবর্তন" নিয়ন্ত্রণের ফোকাস হারানোর পরে মূল্যায়ন করা হয় এবং তখনই ঘটে যখন মান পরিবর্তিত হয়
অ্যাডাম মোসক্সিস্কি

আমি কেবল ক্রোম দিয়ে চেষ্টা করেছি। onchangeফোকাস করার সময় আপনি যখন এন্টার টিপুন তখন ট্রিগারও হয়ে যায়।
রিক

24
  • change eventঅধিকাংশ ব্রাউজার মধ্যে দাবানল বিষয়বস্তু পরিবর্তিত হয় এবং উপাদান বাইরে চলে গেলে focus। এটি মূলত পরিবর্তনের সামগ্রিক। এটি ক্ষেত্রে যেমন প্রতিটি একক পরিবর্তনের জন্য আগুন দেয় না input event

  • input eventদাবানল উপাদানের জন্য বিষয়বস্তুর পরিবর্তনের সিঙ্ক্রোনাস। এর মতো, ইভেন্ট শ্রোতা আরও ঘন ঘন গুলি চালানোর ঝোঁক রাখেন।

  • বিভিন্ন ধরণের মিথস্ক্রিয়তার জন্য কোনও পরিবর্তন ইভেন্ট নিক্ষেপ করা উচিত কিনা তা বিভিন্ন ব্রাউজার সর্বদা একমত হয় না


আমি মনে করি না যে ইনপুট ইভেন্টটি সিঙ্ক্রোনজ ফায়ার গ্যারান্টিযুক্ত।
টিম ডাউন

এছাড়াও, সমস্ত ব্রাউজারের বর্তমান সংস্করণগুলি inputইভেন্টটিকে সমর্থন করে ।
টিম ডাউন

2
@ টিমডাউন, সে কারণেই আমি বলেছিলাম যে ব্রাউজার সমর্থন বিভিন্ন রকম হয়। প্রত্যেকেরই প্রতিটি ব্রাউজারের বর্তমান সংস্করণ থাকে না।
গাবে

@ টিমডাউন এটি কি সিঙ্ক্রোনাস ফায়ার করে?
সুরজ জৈন

@ সুরজজাইন: সত্যনিষ্ঠ, আমি নিশ্চিত নই।
টিম ডাউন

1

এমডিএন ডকুমেন্টেশনের একটি স্পষ্ট ব্যাখ্যা রয়েছে (এটি কখন যুক্ত করা হয়েছিল তা নিশ্চিত নয়):

পরিবর্তন ইভেন্টের জন্য বহিস্কার করা হয় input, selectএবং textareaউপাদানের উপাদনের মান একটি নড়চড় ব্যবহারকারী দ্বারা প্রতিশ্রুতিবদ্ধ হয় না। ইনপুট ইভেন্টের বিপরীতে, পরিবর্তিত ইভেন্টটি প্রয়োজনীয়ভাবে প্রতিটি পরিবর্তনের জন্য কোনও উপাদানের মান হিসাবে বরখাস্ত করা হয় না

https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event

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