এইচটিএমএল ফর্মটিতে পাঠ্য আটকানো অক্ষম করুন


96

এইচটিএমএল ফর্মের কোনও পাঠ্য ক্ষেত্রে পাঠ্য আটকে দেওয়ার ক্ষমতা অক্ষম করার জন্য জাভাস্ক্রিপ্ট ব্যবহার করার কোনও উপায় আছে কি?

উদাহরণস্বরূপ আমার কাছে একটি সাধারণ রেজিস্ট্রেশন ফর্ম রয়েছে যেখানে ব্যবহারকারীর তাদের ইমেলটি দুবার ইনপুট করতে হবে। দ্বিতীয় ইমেল এন্ট্রিটি প্রথম ইমেল এন্ট্রিতে কোনও টাইপ নেই তা যাচাই করা। তবে যদি ব্যবহারকারী তাদের ইমেলটি অনুলিপি / পেস্ট করে তবে উদ্দেশ্যটি হারাবে এবং আমি ব্যবহারকারীদের সমস্যা হচ্ছে কারণ তারা ভুল ইমেলটি ইনপুট করেছে এবং এটি অনুলিপি / পেস্ট করেছে।

হতে পারে আমি আমার প্রশ্নে পরিষ্কার ছিলাম না তবে আমি তাদের ব্রাউজারে লোক পাঠানোর অনুলিপি (বা ড্রাগ টানুন) আটকাতে চাইছি না। আমি কেবল তাদের আটকানো থেকে বিরত করতে চাই ত্রুটি হ্রাস করতে কোনও পাঠ্য ক্ষেত্রে ইনপুট ।

সম্ভবত এই "হ্যাক" ব্যবহার করার পরিবর্তে আপনি যে সমস্যার সমাধান করতে চাইছেন তার মূল সমস্যার জন্য আপনি আরও একটি সমাধান প্রস্তাব করতে পারেন? আমি অর্ধ ডজনেরও কম ব্যবহারকারীর পরীক্ষা করেছি এবং এটি ইতিমধ্যে দু'বার হয়েছে। আমার শ্রোতাদের কাছে কম্পিউটারের দক্ষতা উচ্চ স্তরের নেই।


113
লোকদের তাদের ব্রাউজারে তাদের ঠিকানা বই থেকে ইমেল ঠিকানা অনুলিপি / আটকাতে বাধা দেওয়া। এটা ভাল নেমে যেতে হবে।
কুইন্টিন

28
যখন ক্লায়েন্ট পরিবর্তনের জন্য জোর দিয়ে থাকে তখন বেশি কিছু করতে পারে না। আপনার পানীয় উপভোগ করুন :)
Justinl

15
এটি সম্পূর্ণরূপে ঠিক হতে পারে যদি তিনি কেবল ইমেলটি মূল ক্ষেত্রটিতে আটকানো না হয় তবেই যাচাইকরণের ক্ষেত্রে পেস্টিং অক্ষম করে। আমি অন্য কথায়, ব্যবহারকারীর হয় হয় উভয় ক্ষেত্রে ইমেল পেস্ট করতে হবে, না উভয় ক্ষেত্রে।
জিজে

25
যদি কোনও ক্লায়েন্ট এটির জন্য জিজ্ঞাসা করে, তাদের বলুন এটি কতটা খারাপ ধারণা। কোনও ক্লায়েন্টকে ঠিক সেই মুহুর্তে দূরে চলে যাওয়ার (রেজিস্ট্রেশনের সময়) প্রস্থান করার এটি দুর্দান্ত উপায়। আপনি চান না যে কোনও গ্রাহক সম্পর্ক বিচ্ছিন্ন হয়ে গ্রাহকের সাথে শুরু হয়। এই অনুশীলনটি উভয়ই ক্রমশ সাধারণ হয়ে উঠছে এবং ক্রমবর্ধমান আপত্তিকর হিসাবে বেশি লোক পাসওয়ার্ড পরিচালক ব্যবহার করে। এছাড়াও দেখুন: ux.stackexchange.com/q/21062/9529 এবং ওবি । xkcd: xkcd.com/970
মার্ক বুথ

এলিমেন্ট ইন্সপেক্টর দিয়ে এই "বৈশিষ্ট্য" কীভাবে পরাস্ত করতে হয় তা দেখার সময় আমি এই প্রশ্নটি পেয়েছি। এটা কাজ করেছে!
এসভিডি

উত্তর:


54

আমাকে সম্প্রতি একটি ফর্ম উপাদানটিতে পেস্টিংটি ভিক্ষাবৃত্তিতে অক্ষম করতে হয়েছিল। এটি করতে, আমি ইন্টারনেট এক্সপ্লোরারের (এবং অন্যদের) অনপেষ্ট ইভেন্ট হ্যান্ডলারের একটি ক্রস-ব্রাউজার * প্রয়োগকরণ লিখেছি। আমার সমাধানটি কোনও তৃতীয় পক্ষের জাভাস্ক্রিপ্ট লাইব্রেরির চেয়ে আলাদা হতে হবে।

আমি যা নিয়ে এসেছি তা এখানে। এটি সম্পূর্ণরূপে আটকানো নিষ্ক্রিয় করে না (উদাহরণস্বরূপ ব্যবহারকারী একবারে একটি অক্ষর পেস্ট করতে পারে), তবে এটি আমার প্রয়োজনগুলি পূরণ করে এবং কী কোডস ইত্যাদির সাথে ডিল করা এড়ানো যায় ids

// Register onpaste on inputs and textareas in browsers that don't
// natively support it.
(function () {
    var onload = window.onload;

    window.onload = function () {
        if (typeof onload == "function") {
            onload.apply(this, arguments);
        }

        var fields = [];
        var inputs = document.getElementsByTagName("input");
        var textareas = document.getElementsByTagName("textarea");

        for (var i = 0; i < inputs.length; i++) {
            fields.push(inputs[i]);
        }

        for (var i = 0; i < textareas.length; i++) {
            fields.push(textareas[i]);
        }

        for (var i = 0; i < fields.length; i++) {
            var field = fields[i];

            if (typeof field.onpaste != "function" && !!field.getAttribute("onpaste")) {
                field.onpaste = eval("(function () { " + field.getAttribute("onpaste") + " })");
            }

            if (typeof field.onpaste == "function") {
                var oninput = field.oninput;

                field.oninput = function () {
                    if (typeof oninput == "function") {
                        oninput.apply(this, arguments);
                    }

                    if (typeof this.previousValue == "undefined") {
                        this.previousValue = this.value;
                    }

                    var pasted = (Math.abs(this.previousValue.length - this.value.length) > 1 && this.value != "");

                    if (pasted && !this.onpaste.apply(this, arguments)) {
                        this.value = this.previousValue;
                    }

                    this.previousValue = this.value;
                };

                if (field.addEventListener) {
                    field.addEventListener("input", field.oninput, false);
                } else if (field.attachEvent) {
                    field.attachEvent("oninput", field.oninput);
                }
            }
        }
    }
})();

পেস্টিং অক্ষম করার জন্য এটির ব্যবহার করতে:

<input type="text" onpaste="return false;" />

* আমি জানি যে অননপুট ডাব্লু 3 সি ডোম অনুচ্ছেদের অংশ নয়, তবে আমি ব্রাউজারগুলির মধ্যে সমস্তটিই এই কোডটি — ক্রোম 2, সাফারি 4, ফায়ারফক্স 3, অপেরা 10, আই 6, আই 7 either নয়ত ইনপুট বা অনপাস সমর্থন করে tested এই সমস্ত ব্রাউজারগুলির মধ্যে কেবল অপেরা অনপেষ্টকে সমর্থন করে না, তবে এটি অনপুট সমর্থন করে।

দ্রষ্টব্য: এটি কোনও কনসোল বা অন্য সিস্টেমে কাজ করবে না যা অন-স্ক্রিন কীবোর্ড ব্যবহার করে (অন-স্ক্রীন কীবোর্ডটি ব্রাউজারে কীগুলি প্রেরণ করে না যখন প্রতিটি কী নির্বাচন করা হয়)। যদি এটি সম্ভব হয় তবে আপনার পৃষ্ঠা / অ্যাপটি কোনও অন-স্ক্রীন কীবোর্ড এবং অপেরা (যেমন: নিন্টেন্ডো ওয়াই, কিছু মোবাইল ফোন) সহ কেউ ব্যবহার করতে পারবেন, আপনি যদি অন-স্ক্রিন কীবোর্ডটি পরীক্ষা না করে পরীক্ষা না করেন তবে এই স্ক্রিপ্টটি ব্যবহার করবেন না প্রতিটি কী নির্বাচনের পরে ব্রাউজারে কীগুলি প্রেরণ করে।


61
ফায়ারফক্সকে এই নির্বোধের নিয়মটি মানতে বাধা দিতে, এখানে যান: কনফিগার করুন এবং পরিবর্তন করুন dom.event.clipboardevents.en false
lolesque

4
আপনার লেখা জেএসগুলি আমি অন্তর্ভুক্ত না করা সত্ত্বেও, আমি ব্যবহারকারীকে কেবল অন্তর্ভুক্ত করে কিছু আটকানো থেকে আটকাতে সক্ষম হয়েছি onpaste="return false", যদি আমি সেই পদ্ধতির সাথে যাই তবে কোনও সমস্যা আছে
বিবেকসিংগগিটস

@viveksinghggits onpasteব্রাউজারগুলিতে কোড প্রয়োগগুলি যা এটি ইতিমধ্যে সরবরাহ করে না। আপনি বলছেন " আমি ব্যবহারকারীকে কোনও কিছু আটকানো থেকে আটকাতে সক্ষম " তবে আপনি কোন ব্রাউজারগুলিতে এটি পরীক্ষা করেছেন?
আনানফায়

বাস্তবায়নের ক্ষেত্রে আমি দুটি সুস্পষ্ট উন্নতি দেখতে পাচ্ছি: 1) কেবল ব্রাউজারগুলিতে কোড চালান যেখানে এটি ইতিমধ্যে সমর্থিত নয়, 2) ডিওএম সংশোধন করা হলে পুনরায় কার্যকর করুন - বর্তমানে এটি গতিশীল যুক্ত ইনপুটগুলিতে প্রয়োগ করা হবে না।
আনানফায়

@ রিক, তাই আপনি টেক্সারিয়াস দিয়ে ঠিক আছেন যেখানে ব্যবহারকারীরা এতে কোনও কিছু পেস্ট করতে পারবেন? বেকুজ তারা অন্য স্ক্রিনগুলিতে যেখানে আটকানো ডেটা প্রদর্শিত হবে ঠিক তেমন দেখতে প্রত্যাশা করবে এবং সেই ডেটা কোনও ইমেলের মধ্যে .োকানো হলে তারা ঠিক এটি দেখতে প্রত্যাশা করবে। আমার জন্য, আমি যে ফোন কল এবং সমর্থন ইমেলগুলি আসবে তা চাই না। কোনও নির্দিষ্ট ক্ষেত্রে আটকানো অক্ষম করা একটি কার্যকর বিকল্প এবং প্রশ্ন, আইএমএইচও। আমাদের বেশিরভাগ সমস্যাটি হ'ল যখন আমরা "রিচ টেক্সট এডিটর" ব্যবহার করি - সেই জিনিসগুলি জাভাস্ক্রিপ্ট বা jquery কমান্ডের যা কিছু আছে তা পেস্টিং প্রতিরোধ করার জন্য ওভাররাইড করে।
ম্যাকএলি

144

এটা করবেন না। ব্যবহারকারীর ব্রাউজারে গণ্ডগোল করবেন না। অনুলিপি দ্বারা + একটি ই-মেইল কনফার্মেশন ফিল্ডে আটকানো, ব্যবহারকারীরা যা টাইপ করেন তার দায়ভার গ্রহণ করে। যদি সেগুলি অনুলিপি করে + একটি ত্রুটিযুক্ত ঠিকানা আটকে দেয় (এটি আমার কাছে ঘটেছে) তবে এটি তাদের নিজস্ব দোষ fault

আপনি যদি নিশ্চিত করতে চান যে ই-মেইল নিশ্চিতকরণ কার্যকর হয়েছে, ব্যবহারকারী আপনার সাইটের অপেক্ষা করার সময় তাদের ই-মেইলটি পরীক্ষা করুন ("দয়া করে আপনার ওয়েবমেল প্রোগ্রামটি একটি নতুন উইন্ডোতে খুলুন")। বড় মেদযুক্ত অক্ষরে ই-মেইল ঠিকানাটি দেখান ("নিশ্চয়তা ইমেলটি প্রেরণ করা হয়েছিল .... একটি ত্রুটি হয়েছে? পরিবর্তন করতে এখানে ক্লিক করুন)।

আরও ভাল, যদি আপনি পারেন তবে ব্যবহারকারীকে নিশ্চিত না করে এক ধরণের সীমিত অ্যাক্সেস পেতে দিন। এইভাবে, তারা সরাসরি লগ ইন করতে পারে এবং অন্যান্য কারণে (যেমন স্প্যাম ফিল্টারগুলি) দ্বারা নিশ্চিতকরণ মেইল ​​অবরুদ্ধ থাকলেও আপনি দর্শকের সাথে যোগাযোগ রাখার সম্ভাবনাগুলি উন্নতি করে।


6
যখন ব্যবহারকারীরা নিজেরাই ডেটা প্রবেশ করেন তখন আমি কোনও দৃশ্যের জন্য আপনার জবাবের সাথে একমত হই। তবে, যখন কোনও ব্যবহারকারী অন্য কারও পক্ষ থেকে ইমেল ঠিকানা প্রবেশ করছে - উদাহরণস্বরূপ, সিআরএম সিস্টেম বা অনুরূপ - আপনার সমাধানটি কার্যকর করা সম্ভব নয় fe এই ক্ষেত্রে ব্যবহারকারী তাদের নিজস্ব ইমেল ঠিকানা প্রবেশ করছে না তাই তারা সম্ভবত এটি ভুল বানান করে। আপনি যদি ইমেল নিশ্চিতকরণ বাক্সে আটকানোর অনুমতি দেন তবে আপনি প্রচুর ভুল ডেটা পাবেন যাতে পেস্ট আটকাতে কোনও সমস্যা নেই। একজন বিকাশকারী হিসাবে আপনাকে ব্যবসায়ের ডেটা রক্ষার জন্য "বোবা পর্যাপ্ত" ব্যবহারকারীদের বিরুদ্ধে হ্রাস করতে হবে।
তারাতিমান

13
এমন একটি সাধারণ ঘটনাও রয়েছে যেখানে এই প্রশ্নটির দিকে তাকাচ্ছেন বিকাশকারীরা যে প্রকল্পটিতে কাজ করছেন তার প্রয়োজনীয়তার উপর সামান্য বা নিয়ন্ত্রণ রাখে না। এটি এখানে জিজ্ঞাসা করা প্রশ্নের উত্তর নয়, তাই -১।
নিক

4
বলছেন না এটি প্রশ্নের উত্তর দেয় না। আমার বর্তমানে একটি আবশ্যকতা রয়েছে যেখানে পেস্টটি অক্ষম করা উচিত।
ডায়ারান এভারেট

13
আপনি যদি কখনও এর মতো কোনও প্রয়োজনীয়তা সরবরাহ করেন তবে এটি পেশা হিসাবে চালিয়ে নেওয়া আপনার পেশা। আপনি কোড জোড়া লিখতে পারেন এমন এক হাতের চেয়ে বেশি।
ড্যান

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

69

আপনি অনুলিপিপিপস্টেটের একটি শ্রেণি ইনপুটগুলিতে অনুলিপি করতে চান যা অনুলিপি করতে চান এবং এই jQuery স্ক্রিপ্টটি অনুলিপি করতে চান

  $(document).ready(function () {
    $('input.disablecopypaste').bind('copy paste', function (e) {
       e.preventDefault();
    });
  });

4
ট্যাঙ্ক আমার জন্য ভাল কাজ করে!
গ্যাব্রিয়েল গ্লুবার

27

এটি পেয়েছি, আমরা এটি ব্যবহার করে তা অর্জন করতে পারি onpaste:"return false", ধন্যবাদ: http://sumtips.com/2011/11/prevent-copy-cut-paste-text-field.html

নীচে তালিকাভুক্ত হিসাবে আমাদের কাছে বিভিন্ন অন্যান্য বিকল্প রয়েছে।

<input type="text" onselectstart="return false" onpaste="return false;" onCopy="return false" onCut="return false" onDrag="return false" onDrop="return false" autocomplete=off/><br>

16

আপনি ..... কিন্তু পারবেন না।

আপনার কোনও ব্যবহারকারী ব্রাউজারের ডিফল্ট আচরণ পরিবর্তন করা উচিত নয়। এটি আপনার ওয়েব অ্যাপ্লিকেশনটির জন্য খারাপ ব্যবহারযোগ্যতা। এছাড়াও যদি কোনও ব্যবহারকারী এই হ্যাকটি অক্ষম করতে চায় তবে তারা কেবল তাদের ব্রাউজারে জাভাস্ক্রিপ্ট অক্ষম করতে পারে।

এই বৈশিষ্ট্যগুলি কেবল পাঠ্যবক্সে যুক্ত করুন

ondragstart=”return false” onselectstart=”return false

6
প্রশ্নটি পেস্টিং অক্ষম করার বিষয়ে। এই কৌশলটি কেবল অনুলিপি করা শক্ত করে তুলবে না যা মোটেও আটকানো কার্যকর নয়।
bendman

10

ক্রেজি ধারণা: সাইনআপ প্রক্রিয়াটির অংশ হিসাবে আপনাকে একটি ইমেল প্রেরণের জন্য ব্যবহারকারী প্রয়োজন। এটি কোনও স্পষ্টতই অসুবিধে হবে যখন কোনও মেলটো লিঙ্কে ক্লিক করা কাজ করে না (যদি তারা ওয়েবমেল ব্যবহার করে থাকে, উদাহরণস্বরূপ) তবে আমি এটি একই সাথে টাইপসের বিরুদ্ধে গ্যারান্টি দেওয়ার এবং ইমেল ঠিকানাটি নিশ্চিত করার উপায় হিসাবে দেখছি।

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


হা, এটি একটি ঝরঝরে ধারণা।
জাস্টিনেল

7

ইমেল ঠিকানায় কনফার্মেশন ইমেল প্রেরণ সম্পর্কে কীভাবে যে ব্যবহারকারী মাত্র দু'বার প্রবেশ করেছেন যেখানে আপনার সাইটে একটি কনফার্মেশন ইউআরএল এর লিঙ্ক রয়েছে, তখন আপনি কী জানবেন যে তারা বার্তাটি পেয়েছে?

ইমেলটির প্রাপ্যতা নিশ্চিত করতে যে কেউ ক্লিক করেন না তারা নিজের ইমেল ঠিকানাটি ভুলভাবে প্রবেশ করে থাকতে পারেন।

একটি নিখুঁত সমাধান নয়, তবে কিছু ধারণা।


4
আমি বর্তমানে এই বাস্তবায়ন আছে। সমস্যাটি হ'ল ব্যবহারকারীরা মনে করেন যে তারা আমাদের শেষ দিকে ত্রুটির কারণে ইমেলটি গ্রহণ করবে না কারণ তারা তাদের ইমেল ঠিকানা যাচাই করে যে তারা মনে করে যে তারা প্রবেশ করেছে এবং তাদের কোনও ইমেল নেই। এছাড়াও যা ঘটে তা হ'ল যখন তারা পুনরায় নিবন্ধকরণ করার চেষ্টা করেন, তারা যে ব্যবহারকারীর নামটি ব্যবহার করেছিলেন তা এখন অনুপলব্ধ কারণ এটি সেই ভুল ইমেল ঠিকানার সাথে আটকে রয়েছে।
justinl

টেন সম্ভবত এমন কিছু ওয়ার্কফ্লো / কোড যুক্ত করুন যা প্রতিদিন ব্যবহারকারীর নাম পরিষ্কার করে চলে যা 2 দিনের জন্য নিশ্চিত করা হয়নি।
কলিন

4
মন্তব্যের জন্য ধন্যবাদ. আমার চিন্তাভাবনাগুলি হ'ল যদি আপনি কোনও ওয়েবসাইটে অ্যাকাউন্ট তৈরি করার চেষ্টা করেন এবং এটিতে আপনার ব্যবহারকারীর নাম নেওয়া হয়েছে বলে বলা হয়, আপনি কি 2 দিনের মধ্যে আবার ফিরে গিয়ে আবার চেষ্টা করবেন? আমার চিন্তাভাবনা সম্ভবত না। হয় আপনি একই দিন একটি পৃথক ব্যবহারকারীর সাথে একটি নতুন অ্যাকাউন্ট তৈরি করেছেন বা আপনি সাইটে ফিরে আসার বিরক্ত করেননি কারণ আপনি কীভাবে নিবন্ধন করতে পারবেন তা বুঝতে পারেননি এবং সাইটটি "খুব জটিল" ছিল।
জাস্টিনাল

8
কলিন যা বলছে তা অব্যাহত রাখতে আপনি সম্ভবত ধরে নিতে পারেন যে যখন কেউ একই ব্যবহারকারী নাম এবং অন্য কোনও ইমেল ঠিকানা দিয়ে পুনরায় নিবন্ধন করার চেষ্টা করছেন এবং তারা নিশ্চিতকরণ বার্তায় কোনও প্রতিক্রিয়া ব্যক্ত করেনি তবে তাদের সম্ভবত এটি করা ঠিক আছে। আপনি দেখতে পাচ্ছেন যে লোকেরা তাদের ইমেলটিতে তাদের ডোমেনটি সঠিকভাবে পায় তবে তাদের ব্যবহারকারীর নামটি ভুল বানান করে এবং যখন কোনও ভুল করেছে তখন আরও নির্ধারণ করতে এটি ব্যবহার করতে পারে?
রিচার্ড লুকাস

4
আমি তাদের ব্যবহারকারীর পুনরায় নিবন্ধন করার অনুমতি দেওয়ার সেই ধারণাটি সত্যিই পছন্দ করি যারা এখনও তাদের অ্যাকাউন্টের তথ্য নিশ্চিত করে নি। আমি মনে করি এই নকশা সমাধানটি আমার মূল প্রস্তাবিত প্রযুক্তিগত সমাধানের চেয়ে ভাল। অন্য সবার ফর্ম শুনে এই ডিফল্ট ব্রাউজারের কার্যকারিতা পরিবর্তন করা একটি খারাপ ধারণা ছিল যা আমার আরও ভাল সমাধানের জন্য শুনতে হয়েছিল।
justinl

7

আপনি jquery ব্যবহার করতে পারেন

এইচটিএমএল ফাইল

<input id="email" name="email">

jquery কোড

$('#email').bind('copy paste', function (e) {
        e.preventDefault();
    });

6

@ বয়সিএস উত্তরগুলি প্রসারিত করে , আমি "চালু" ব্যবহার করারও পরামর্শ দেব।

$('body').on('copy paste', 'input', function (e) { e.preventDefault(); });

আপনি যদি স্ক্রিপ্টটি গতিশীলভাবে যুক্ত ফর্ম উপাদানগুলিতে প্রয়োগ করার পরিকল্পনা করেন তবে এই পদ্ধতিটি কার্যকর।
ম্যাথু

3

যদি আপনার 2 টি ইমেল ক্ষেত্র ব্যবহার করতে হয় এবং ব্যবহারকারী ভুলভাবে একই ক্ষেত্র 1 থেকে ফিল্ড 2 তে একই ভুল টাইপ করা ইমেলটি পেস্ট করার বিষয়ে উদ্বিগ্ন হন তবে আমি যদি বলি যে ব্যবহারকারী দ্বিতীয় ইমেল ক্ষেত্রে কিছু আটকান তবে একটি সতর্কতা (বা আরও সূক্ষ্ম কিছু) দেখান d

document.querySelector('input.email-confirm').onpaste = function(e) {
    alert('Are you sure the email you\'ve entered is correct?');
}

এইভাবে আপনি পেস্ট অক্ষম করবেন না, তারা সম্ভবত প্রথম ক্ষেত্রে টাইপ করেছেন এবং দ্বিতীয় ক্ষেত্রের মধ্যে সঠিকভাবে পেস্ট করেছেন তা যাচাই করার জন্য আপনি কেবল তাদের একটি বন্ধুত্বপূর্ণ অনুস্মারক দিন।

তবে, সম্ভবত স্বতঃসম্পূর্ণ একটি একক ইমেল ক্ষেত্র যা প্রয়োজন তা কেবল। সম্ভাবনা হ'ল তারা কোনও সময়ে অন্য কোনও সাইটে আগে তাদের ইমেলটি সঠিকভাবে পূরণ করেছে এবং ব্রাউজারটি সেই ইমেলটি দিয়ে ফিল্ডটি পূরণ করার পরামর্শ দিবে

<input type="email" name="email" required autocomplete="email">

2

আপনি সিআরটিএল + ভি কী চাপছেন কি না তা সনাক্ত করতে ইনপুট বাক্সে একটি "কীডাউন" শ্রোতা সংযুক্ত করতে পারেন এবং যদি তা হয় তবে ইভেন্টটি বন্ধ করুন বা ইনপুট বাক্সটির মান '' এ সেট করুন।

এটি ব্রাউজারের সম্পাদনা মেনু থেকে ডান ক্লিক এবং আটকানো বা আটকানো পরিচালনা করবে না। আপনাকে কীডাউন শ্রোতার সাথে একটি "শেষ দৈর্ঘ্যের" কাউন্টার যুক্ত করতে হবে এবং ক্ষেত্রের বর্তমান দৈর্ঘ্যটি পরীক্ষা করতে কোনও অন্তর ব্যবহার করতে হবে এটি শেষ কী-স্ট্রোকের পরে বৃদ্ধি পেয়েছে কিনা তা দেখতে।

উভয়ই সুপারিশ করা হয় না, যদিও। পেস্ট অক্ষমযুক্ত ফর্ম ক্ষেত্রগুলি অত্যন্ত হতাশাব্যঞ্জক। আমি প্রথমবার আমার ইমেলটি সঠিকভাবে টাইপ করতে সক্ষম, তাই এটি দ্বিতীয় বাক্সে পেস্ট করার অধিকার সংরক্ষণ করি।


আপেল, ইউনিক্স বা সিটিআরএল-ইনগুলি থেকে রাইট ক্লিক বা এমনকি কিছু নয়, এবং আইফোনগুলি কীভাবে?
মার্টারলক

আমি নিজেকে হতাশাবোধ করে বলে আমিও ইনপুট ক্ষেত্রটি অক্ষম করার বড় ফ্যান নই। কিন্তু এই জাতীয় ব্যবহারকারীর ত্রুটি বন্ধ করার জন্য অন্যান্য বিকল্পগুলি কী কী? বা কোন সমাধানটি কমপক্ষে ভুলভাবে সম্পন্ন ব্যবহারকারী নিবন্ধগুলির সাথে শেষ হবে? ম্যানুয়ালি আবার কোনও ইমেল ঠিকানা টাইপ করতে কিছুটা বিরক্তিকর বলে মনে হচ্ছে তবে হতাশ সম্ভাব্য গ্রাহকদের যদি এটি সংরক্ষণ করতে হয় তবে আমি ব্যবহারকারীদের ম্যানুয়ালি কোনও ইনপুট ক্ষেত্রে টাইপ করতে বাধ্য করতে পছন্দ করব। আমি ভাবছি এটি কোনও বড় অসুবিধা নয় এবং এটি হ'ল হতাশার কারণ হতে পারে যে এটি কোনও সাধারণ ভুল থেকে কাউকে বাঁচাতে পারে। ভাবনা?
justinl

2

আপনার নিবন্ধকরণ প্রক্রিয়াতে একটি দ্বিতীয় পদক্ষেপ যুক্ত করুন। প্রথম পৃষ্ঠা যথারীতি, তবে পুনরায় লোড এ, দ্বিতীয় পৃষ্ঠা প্রদর্শন করুন এবং ইমেলটি আবার জিজ্ঞাসা করুন। এটি যদি গুরুত্বপূর্ণ হয় তবে ব্যবহারকারী এটি পরিচালনা করতে পারবেন।


1

থেকে

কেউ কেউ জাভাস্ক্রিপ্ট ব্যবহারকারীর ক্রিয়াগুলি ক্যাপচারের জন্য যেমন মাউস বা Ctrl + C / Ctrl + V কী সংমিশ্রণগুলি ক্লিক করতে এবং তারপরে অপারেশন বন্ধ করার পরামর্শ দিতে পারে। তবে এটি সম্ভবত সেরা বা সহজ সমাধান নয়। সমাধানটি জাভাস্ক্রিপ্ট ব্যবহার করে কিছু ইভেন্ট ক্যাপচারের সাথে একত্রে ইনপুট ফিল্ডের বৈশিষ্ট্যগুলিতে একীভূত করা হয়েছে।

ব্রাউজারগুলির স্বতঃপূরণ অক্ষম করার জন্য, কেবল ইনপুট ক্ষেত্রে বিশিষ্টতা যুক্ত করুন। এটি দেখতে কিছু দেখতে হবে:

<input type="text" autocomplete="off">

এবং যদি আপনি এই ক্ষেত্রটির জন্য অনুলিপি এবং আটকানো অস্বীকার করতে চান, তবে জাভাস্ক্রিপ্ট ইভেন্ট অনকপি, অনপাস্ট এবং অনকুট ক্যাপচার যুক্ত করুন এবং তাদেরকে মিথ্যা ফিরিয়ে দিন, যেমন:

<input type="text" oncopy="return false;" onpaste="return false;" oncut="return false;">

পরবর্তী পদক্ষেপটি ব্যবহারকারীর কাছ থেকে ইনপুট ফিল্ডের সামগ্রী নির্বাচন অস্বীকার করতে অনসलेक्टারস্টার্ট ব্যবহার করছে তবে সতর্ক হতে হবে: এটি কেবলমাত্র ইন্টারনেট এক্সপ্লোরারের জন্য কাজ করে। উপরের বাকিগুলি সমস্ত বড় ব্রাউজারগুলিতে দুর্দান্ত কাজ করে: ইন্টারনেট এক্সপ্লোরার, মজিলা ফায়ারফক্স, অ্যাপল সাফারি (উইন্ডোজ ওএসে, কমপক্ষে) এবং গুগল ক্রোম।


যতক্ষণ এই তাত্ত্বিক প্রশ্নের উত্তর হতে পারে, এটা বাঞ্ছনীয় হবে উত্তর অপরিহার্য অংশের এখানে অন্তর্ভুক্ত করা, এবং রেফারেন্স এর জন্য লিঙ্ক প্রদান।
কেভ

হ্যাঁ, আমি পরের বার যত্ন নেব
ভাইচিডেওয়ার

4
কেন "খুব সুন্দরভাবে ব্যাখ্যা করা হয়েছে" তা বর্ণনা করে এখনই শুরু করবেন না কেন, আপনি কীভাবে উপস্থাপনা এবং আরও ভাল রেপ পেতে পারেন :)
কেভ

স্ব-পরিপূর্ণতা বন্ধ করার (চেষ্টা করার) জন্য কী ন্যায়সঙ্গততা থাকতে পারে? "আমরা আমাদের ব্যবহারকারীদের ঘৃণা করি!" ? আপনি যদি ব্যবহারকারীর শত্রু হওয়ার চেষ্টা করছেন তবে তারা শেষ পর্যন্ত জিততে পারলে তারা আপনাকে ঘৃণা করবে, কারণ তারা ব্রাউজারটি নিয়ন্ত্রণ করে।
জান হার্টনেস

1

প্রদত্ত ইমেলের হোস্টের এমএক্স রেকর্ডের মেয়াদ পরীক্ষা করুন। এটি @ সাইন এর ডানদিকে ত্রুটিগুলি দূর করতে পারে।

আপনি ফর্মটি জমা দেওয়ার আগে এবং / অথবা সার্ভারের পাশের আগে একটি এজেএক্স কল দিয়ে এটি করতে পারেন।


1

জ্যাকুয়ারি ব্যবহার করে, আপনি অনুলিপি পেস্ট এড়ানো এবং এটি ব্যবহার করে কাটাতে পারেন

$('.textboxClass').on('copy paste cut', function(e) {
    e.preventDefault();
});

1

আমি এই ভ্যানিলা জেএস সমাধানটি ব্যবহার করি:

const element = document.getElementById('textfield')
element.addEventListener('paste', e =>  e.preventDefault())

1

জ্যাকুরির সাহায্যে আপনি একটি সাধারণ কোডলাইন দিয়ে এটি করতে পারেন।

এইচটিএমএল:

<input id="email" name="email">

কোড:

$(email).on('paste', false);

জেএসফিডাল: https://jsfiddle.net/ZjR9P/2/


0

ইউআইবিউবভিউতে সিএসএস ব্যবহার সম্পর্কে কী? কিছুটা এইরকম

<style type="text/css">
<!—-
    * {
        -webkit-user-select: none;
    }
-->
</style>

এছাড়াও আপনি ব্লক সম্পর্কে বিস্তারিত পড়তে পারেন সিএসএস ব্যবহার করে কপি-পেস্ট http://rakaz.nl/2009/09/iphone-webapps-101-getting-safari-out-of-the-way.html


0

সহজ সমাধান: কেবল নিবন্ধকরণ প্রক্রিয়াটিকে বিপরীত করুন: নিবন্ধকরণ প্রক্রিয়া শেষে নিশ্চিতকরণের পরিবর্তে, এটির শুরুতে নিশ্চিতকরণের জন্য অনুরোধ করুন! অর্থাত রেজিস্ট্রেশন প্রক্রিয়া ই-মেইল ঠিকানা এবং অন্য কিছুই জিজ্ঞাসা করার জন্য একটি সাধারণ ফর্ম দিয়ে শুরু হয়েছিল। জমা দেওয়ার পরে, একটি ইমেল যা নিশ্চিতকরণ পৃষ্ঠার সাথে লিঙ্কযুক্ত ইমেলটি প্রেরণ করা ইমেল ঠিকানার অনন্য। ব্যবহারকারী সেই পৃষ্ঠায় যান, তারপরে নিবন্ধকরণের জন্য অবশিষ্ট তথ্যের (ব্যবহারকারীর নাম, পুরো নাম ইত্যাদি) অনুরোধ করা হবে।

এটি সহজ, যেহেতু ওয়েবসাইটটি নিশ্চিতকরণের আগে কিছু সঞ্চয় করার প্রয়োজনও নেই, ইমেল ঠিকানাটি একটি কী দিয়ে এনক্রিপ্ট করা যায় এবং নিশ্চিতকরণ পৃষ্ঠার ঠিকানার অংশ হিসাবে সংযুক্ত করা যেতে পারে।


0

আমি http://bookmarkchamp.com এর জন্য এর অনুরূপ কিছু করেছি - সেখানে যখন আমি কোনও ব্যবহারকারী কোনও এইচটিএমএল ফিল্ডে অনুলিপি করেছিলেন তখন আমি সনাক্ত করতে চেয়েছিলাম। আমি যে বাস্তবায়নটি নিয়ে এসেছি তা হ'ল ফিল্ডটি ক্রমাগত পরীক্ষা করে দেখার জন্য যে কোনও সময় হঠাৎ সেখানে পুরো পাঠ্য আছে কিনা।

অন্য কথায়: যদি একবার মিলি সেকেন্ড আগে কোনও পাঠ্য ছিল না, এবং এখন 5 টিরও বেশি অক্ষর রয়েছে ... তবে ব্যবহারকারী সম্ভবত ক্ষেত্রটিতে কিছু আটকালেন।

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


0

আমি কোনও ইমেল ঠিকানা নিশ্চিত করার বিষয়টি যেভাবে সমাধান করব তা নিম্নরূপ:

  1. মূল প্রক্রিয়াটি অতিক্রম করার আগে - ব্যবহারকারীর নিবন্ধকরণ বলুন - প্রথমে তাদের ইমেল ঠিকানা লিখতে বলুন।
  2. একটি অনন্য কোড তৈরি করুন এবং এটি ইমেল ঠিকানায় প্রেরণ করুন।
  3. ব্যবহারকারী যদি সঠিক ইমেল ঠিকানা প্রবেশ করে থাকে তবে তারা কোডটি পাবেন।
  4. ব্যবহারকারীর অবশ্যই তাদের ইমেল ঠিকানা এবং তাদের অন্যান্য প্রয়োজনীয় তথ্য সহ সেই কোডটি লিখতে হবে, যাতে তারা নিবন্ধকরণটি সম্পূর্ণ করতে পারে। - দয়া করে নোট করুন যে এবার যদি তারা কোনও ভুল ইমেল ঠিকানা (বা একটি ভুল কোড) প্রবেশ করে, কারণ এটি কোডটির সাথে মেলে না, নিবন্ধকরণটি যাবেনা এবং ব্যবহারকারীকে অবিলম্বে জানানো হবে।
  5. যদি ইমেল ঠিকানা, কোড এবং অন্যান্য নিবন্ধকরণ তথ্য সঠিকভাবে প্রবেশ করানো হয় তবে নিবন্ধকরণটি সম্পূর্ণ হয়ে যায় এবং ব্যবহারকারী অবিলম্বে সিস্টেমটি ব্যবহার শুরু করতে পারেন। - তাদের অ্যাকাউন্ট সক্রিয় করতে অন্য কোনও ইমেল ঠিকানার জবাব দেওয়ার দরকার নেই

উন্নত সুরক্ষার জন্য, কোডটির একটি সীমাবদ্ধ জীবনকাল থাকতে হবে এবং নিবন্ধকরণ প্রক্রিয়াতে এটি একবারেই অনুমোদিত হতে হবে। এছাড়াও, কোনও দূষিত রোবট অ্যাপ্লিকেশন প্রতিরোধের জন্য, ক্যাপচা বা অনুরূপ প্রক্রিয়া সহ প্রথম ধাপটি সহ ভাল করা ভাল।


0

আপনি বালি স্ক্রিপ্ট দ্বারা jQuery দ্বারা অনুলিপি পেস্ট বিকল্পটি অক্ষম করতে পারেন। jQuery ("ইনপুট")। অ্যাটর ("অনস্পেট", "মিথ্যা প্রত্যাবর্তন;");

ইনপুট ক্ষেত্রগুলিতে বেলো বিপরীত বৈশিষ্ট্যটি ব্যবহার করে ।

onpaste = "প্রত্যাবর্তন মিথ্যা;"


-1
Hope below code will work :

<!--Disable Copy And Paste-->
<script language='JavaScript1.2'>
function disableselect(e){
return false
}
function reEnable(){
return true
}
document.onselectstart=new Function ("return false")
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}
</script>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.