ঠিক আছে, পার্টিতে কিছুটা দেরি হলেও মনে হচ্ছে কীভাবে autocompleteকাজ করা উচিত এবং কী করা উচিত নয় সে সম্পর্কে কিছুটা ভুল বোঝাবুঝি রয়েছে । এইচটিএমএল স্পেসিফিকেশন অনুসারে, ব্যবহারকারী এজেন্ট (এই ক্ষেত্রে ক্রোম) ওভাররাইড করতে পারে autocomplete:
https://www.w3.org/TR/html5/forms.html#autofilling-form-controls:-the-autocomplete-attribute
কোনও ব্যবহারকারী এজেন্ট ব্যবহারকারীকে কোনও উপাদানটির অটোফিল ক্ষেত্রের নামটি ওভাররাইড করার অনুমতি দিতে পারে, উদাহরণস্বরূপ পৃষ্ঠা লেখকের আপত্তি সত্ত্বেও মানগুলি স্মরণে রাখতে এবং পূর্বনির্ধারিত করতে বা "স্মরণ" না রাখার জন্য এটি "অফ" থেকে "চালু" করতে পারে মান। তবে ব্যবহারকারীর এজেন্টদের ব্যবহারকারীদের তুচ্ছভাবে অটোফিল ফিল্ডের নামটি "অফ" থেকে "অন" বা অন্যান্য মানগুলিকে ওভাররাইড করার অনুমতি দেওয়া উচিত নয়, কারণ সাইটের মান বিবেচনা না করেই যদি সমস্ত মান সবসময় মনে রাখা থাকে তবে ব্যবহারকারীর জন্য উল্লেখযোগ্য সুরক্ষা জড়িত রয়েছে।
সুতরাং ক্রোমের ক্ষেত্রে, বিকাশকারীরা মূলত বলেছে "আমরা এটি তাদের পছন্দসই পছন্দ করতে চাইলে তাদের পছন্দের বিষয়ে সিদ্ধান্ত নিতে ব্যবহারকারীকে ছেড়ে দেব they autocomplete কাজ । আপনি যদি এটি না চান তবে এটি আপনার ব্রাউজারে সক্ষম করবেন না" ।
যাইহোক, এটি প্রদর্শিত হয় যে এটি আমার পছন্দ হিসাবে তাদের পক্ষ থেকে কিছুটা উত্সাহী, তবে এটি এইভাবে। স্পেসিফিকেশন এ জাতীয় পদক্ষেপের সম্ভাব্য সুরক্ষা সম্পর্কিত প্রভাবগুলি নিয়েও আলোচনা করে:
"অফ" কীওয়ার্ডটি নির্দেশ করে যে নিয়ন্ত্রণের ইনপুট ডেটাগুলি বিশেষভাবে সংবেদনশীল (উদাহরণস্বরূপ পারমাণবিক অস্ত্রের জন্য অ্যাক্টিভেশন কোড); অথবা এটি এমন একটি মান যা কখনই পুনরায় ব্যবহার করা হবে না (উদাহরণস্বরূপ ব্যাঙ্ক লগইনের জন্য এক-সময়-কী) এবং ব্যবহারকারীকে প্রিফিলের জন্য ইউএ-তে নির্ভর করতে না পেরে প্রতিবার স্পষ্টভাবে ডেটা প্রবেশ করতে হবে তার জন্য মূল্য; অথবা ডকুমেন্টটি তার নিজস্ব স্বয়ংসম্পূর্ণ প্রক্রিয়া সরবরাহ করে এবং ব্যবহারকারী এজেন্ট স্বতঃপূরণ মান সরবরাহ করতে চায় না।
সুতরাং অন্য সবার মতো একই হতাশার পরে, আমি একটি সমাধান খুঁজে পেয়েছি যা আমার পক্ষে কাজ করে। এটি শিরাতে অনুরূপautocomplete="false" উত্তর ।
একটি মজিলা নিবন্ধ ঠিক এই সমস্যার কথা বলে:
https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion
কিছু ক্ষেত্রে, স্বয়ংক্রিয়রূপে বৈশিষ্ট্যটি সেট করা থাকলেও ব্রাউজারটি স্ব-সমাপ্তির মানগুলির পরামর্শ দিবে। এই অপ্রত্যাশিত আচরণটি বিকাশকারীদের জন্য বেশ বিস্ময়কর হতে পারে। সত্যিই নো-সমাপ্তিকে বাধ্য করার কৌশলটি হল গুণকে একটি এলোমেলো স্ট্রিং নির্ধারণ করা
সুতরাং নিম্নলিখিত কোডটি কাজ করা উচিত :
autocomplete="nope"
এবং তাই নিম্নলিখিত প্রতিটি করা উচিত:
autocomplete="false"
autocomplete="foo"
autocomplete="bar"
আমি যে সমস্যাটি দেখছি তা হ'ল ব্রাউজার এজেন্টটি autocompleteবৈশিষ্ট্যটি শিখতে এবং ফর্মটি দেখলে পরের বার প্রয়োগ করার জন্য এটি যথেষ্ট স্মার্ট হতে পারে । যদি এটি এটি করে, তবে সমস্যাটি এখনও ঘটাতে দেখতে আমি দেখতে পাচ্ছি একমাত্র উপায় হ'ল গতিশীল changeautocomplete পৃষ্ঠাটি উত্পন্ন হওয়ার পরে বৈশিষ্ট্যটির মান ।
একটি বিষয় উল্লেখযোগ্য যে হ'ল অনেক ব্রাউজার autocompleteলগইন ক্ষেত্রে (ব্যবহারকারীর নাম এবং পাসওয়ার্ড) জন্য সেটিংস উপেক্ষা করবে । মোজিলা নিবন্ধে যেমন বলা হয়েছে:
এই কারণে, অনেক আধুনিক ব্রাউজারগুলি লগইন ক্ষেত্রগুলির জন্য স্বতঃপূরণ = "বন্ধ" সমর্থন করে না।
- যদি কোনও সাইট কোনও ফর্মের জন্য স্বতঃপূরণ = "বন্ধ" সেট করে এবং ফর্মটিতে ব্যবহারকারীর নাম এবং পাসওয়ার্ড ইনপুট ক্ষেত্র অন্তর্ভুক্ত থাকে, তবে ব্রাউজারটি এখনও এই লগইনটি মনে রাখার প্রস্তাব দিবে, এবং যদি ব্যবহারকারী রাজি হন, ব্রাউজারটি পরের বার সেই ক্ষেত্রগুলি স্বয়ংক্রিয়ভাবে পূরণ করবে ব্যবহারকারী এই পৃষ্ঠাতে যান।
- যদি কোনও সাইট ব্যবহারকারীর নাম এবং পাসওয়ার্ড ইনপুট ক্ষেত্রগুলির জন্য স্বতঃপূরণ = "বন্ধ" সেট করে, তবে ব্রাউজারটি এখনও এই লগইনটি মনে রাখার প্রস্তাব দিবে, এবং যদি ব্যবহারকারী সম্মত হন, ব্যবহারকারী পরের বার এই পৃষ্ঠাটি দেখার জন্য ব্রাউজার সেই ক্ষেত্রগুলি স্বতঃপূর্ণ করে তুলবে।
ফায়ারফক্স (সংস্করণ 38 হ'ল), গুগল ক্রোম (34 সাল থেকে) এবং ইন্টারনেট এক্সপ্লোরার (11 সংস্করণ থেকে) এর আচরণ এটি।
বৈশিষ্ট্যটি formউপাদান বা উপাদানটির সাথে সম্পর্কিত কিনা তা অবশেষে একটি সামান্য তথ্য input। জল্পনা আবার উত্তর:
যদি স্ব-অসম্পূর্ণ বৈশিষ্ট্য বাদ দেওয়া হয়, তবে উপাদানটির ফর্মের মালিকের স্বতঃপূত বৈশিষ্ট্যের অবস্থার সাথে সম্পর্কিত ডিফল্ট মানটি পরিবর্তে ব্যবহৃত হয় (হয় "চালু" বা "অফ")। যদি কোনও ফর্মের মালিক না থাকে তবে মান "চালু" ব্যবহার করা হয়।
So. এটিকে ফর্মটিতে রাখার জন্য সমস্ত ইনপুট ক্ষেত্রে প্রয়োগ করা উচিত। এটি একটি পৃথক উপাদানের উপর রাখলে ঠিক সেই উপাদানটির জন্য প্রয়োগ করা উচিত (এমনকি যদি ফর্মটিতে এটি নাও থাকে)। যদি autocompleteএকেবারেই সেট না করা থাকে তবে এটি ডিফল্ট হয় on।
সারসংক্ষেপ
autocompleteপুরো ফর্মটি অক্ষম করতে :
<form autocomplete="off" ...>
অথবা যদি আপনার গতিশীলভাবে এটি করার দরকার হয়:
<form autocomplete="random-string" ...>
autocompleteএকটি পৃথক উপাদান নিষ্ক্রিয় করতে (ফর্ম সেটিং উপস্থিত থাকুক বা না থাকুক)
<input autocomplete="off" ...>
অথবা যদি আপনার গতিশীলভাবে এটি করার দরকার হয়:
<input autocomplete="random-string" ...>
এবং মনে রাখবেন যে নির্দিষ্ট ব্যবহারকারী এজেন্টরা এমনকি আপনার অক্ষম করার লড়াইয়ের প্রচেষ্টাকেও ওভাররাইড করতে পারে autocomplete।