কোনও পাঠ্যবক্সের সামগ্রী কীভাবে সনাক্ত করবেন তা পরিবর্তিত হয়েছে


417

যখনই কোনও পাঠ্যবক্সের সামগ্রী পরিবর্তন হয়েছে আমি সনাক্ত করতে চাই। আমি কীআপ পদ্ধতিটি ব্যবহার করতে পারি, তবে এটি কী-স্ট্রোকগুলি সনাক্ত করবে যা তীর কীগুলির মতো অক্ষর তৈরি করে না। আমি কীপ ইভেন্টটি ব্যবহার করে এটি করার দুটি পদ্ধতির কথা ভেবেছিলাম:

  1. স্পষ্টভাবে চেক করুন যদি চাপানো কীটির ascii কোডটি একটি চিঠি \ ব্যাকস্পেস \ মুছে ফেলা হয়
  2. কী স্ট্রোকের আগে পাঠ্যবক্সে পাঠ্যটি কী ছিল তা মনে রাখার জন্য ক্লোজারগুলি ব্যবহার করুন এবং এটি পরিবর্তন হয়েছে কিনা তা পরীক্ষা করুন।

দু'জনকেই দেখতে জটিল লাগছে।


7
হ্যাঁ, এর জন্য কীআপ ধরা খারাপ is আপনি কোনও কিপ্রেস ছাড়াই স্টাফ পেস্ট করতে পারেন।
খরচ করে

2
কোনও সুযোগ আপনি নিজের চূড়ান্ত সমাধান পোস্ট করতে পারেন? আমারও এই সমস্যাটি সমাধান করা দরকার :)
ম্যাট ডটসন

1
বা .keyup()ইভেন্ট ... আরও তথ্য এখানে: stackoverflow.com/questions/3003879/…
ভিক্টর এস

1
দেখুন $ ("# কিছু ইনপুট")। পরিবর্তনপলিং () ; এমন একটি মোড়কের জন্য যা বর্তমান মানটি পরীক্ষা করে এবং .change()যদি এটি পরিবর্তন হয় তবে ট্রিগার করে ।
জোয়েল পুররা

আপনি এই খুব চেক করতে হবে stackoverflow.com/a/23266812/3160597
azerafati

উত্তর:


714

'পরিবর্তন' পরিবর্তে 'ইনপুট' ইভেন্ট পর্যবেক্ষণ শুরু করুন।

jQuery('#some_text_box').on('input', function() {
    // do your stuff
});

... যা সুন্দর এবং পরিষ্কার, তবে আরও বাড়ানো যেতে পারে:

jQuery('#some_text_box').on('input propertychange paste', function() {
    // do your stuff
});

12
'লাইভ' অবমূল্যায়ন করা হয়। তাই 'চালু' ব্যবহার করতে stackoverflow.com/a/15111970/1724777
NavaRajan

21
'ইনপুট' এর একমাত্র পতন হ'ল এটি আই <9 এর সাথে সামঞ্জস্যপূর্ণ নয়
ক্যাটফিশ

5
ইনপুটটি এইচটিএমএল 5 ইভেন্ট যা সমস্ত ব্রাউজারে সমর্থিত নয়। বিকাশকারী.মোজিলা.আর.ইন-
ইউএস

18
আপনি
.on

23
আইই <9 এর একমাত্র পতন হ'ল এটি কেউ ব্যবহার করে না!
sohaiby

67

এইচটিএমএল / স্ট্যান্ডার্ড জাভাস্ক্রিপ্টে অনঞ্চল ইভেন্টটি ব্যবহার করুন।

JQuery এ হ'ল পরিবর্তন () ইভেন্ট। উদাহরণ স্বরূপ:

$('element').change(function() { // do something } );

সম্পাদনা

কিছু মন্তব্য পড়ার পরে, কি সম্পর্কে:

$(function() {
    var content = $('#myContent').val();

    $('#myContent').keyup(function() { 
        if ($('#myContent').val() != content) {
            content = $('#myContent').val();
            alert('Content has been changed');
        }
    });
});

3
হ্যাঁ, এটি আমার প্রশ্নের # 2 বিকল্পে আমি পরামর্শ মতো করে। আমি ক্লোজারগুলিকে পছন্দ করি যেহেতু গ্লোবাল ব্যবহার করা কেবলমাত্র একটি পাঠ্যবক্সের জন্য এই ফাংশনটিকে কাজ করবে। যাইহোক, মনে হচ্ছে অদ্ভুত jquery এর এটি করার সহজ উপায় নেই।
ওলামুন্ডো

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

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

45

'পরিবর্তন' ইভেন্টটি সঠিকভাবে কাজ করে না, তবে 'ইনপুট' নিখুঁত।

$('#your_textbox').bind('input', function() {
    /* This will be fired every time, when textbox's value changes. */
} );

7
এটি আমার পরিস্থিতির জন্য নিখুঁতভাবে কাজ করে, যদিও এর ব্যবহারের .onপ্রস্তাব দেওয়া হয় 1.7 থেকে (বরং .bind)।
নিক

8
ওপ ক্রস ব্রাউজারের সামঞ্জস্যের প্রয়োজন নির্দিষ্ট করে নি। @Schwarzkopfb একটি সমাধান সরবরাহ করেছেন। ভোট দেওয়ার কোনও কারণ নেই কারণ আপনার এমন করার মতো প্রতিনিধি রয়েছে।
ডেভিড পূর্ব

3
@ ডেভিড তিনি কোন ব্রাউজারটি নির্দিষ্ট করেন নি
ozz

9
@ jmo21 আমি মনে করি যখন কোনও ব্রাউজার নির্দিষ্ট না করে সমাধানটি ক্রস-ফাংশনাল হওয়া উচিত তখন আমরা ওয়েব বিকাশের জন্য ধরে নিতে পারি। আদর্শটি সমস্ত ব্রাউজারগুলিকে সমর্থন করে।
ক্রিস

3
@ ক্রিস "আদর্শটি সমস্ত ব্রাউজারগুলিকে সমর্থন করছে" - কেবলমাত্র যদি আপনি দুঃখবাদী হন। আইই 8/9- তে 2% গ্লোবাল ব্যবহারকারীদের জন্য এইচটিএমএল 5 ধার্মিকতা এড়ানোর কোনও কারণ নেই। caniuse.com/#feat=input-event
ইয়ারিন

39

এটি সম্পর্কে:

<jQuery 1.7

$("#input").bind("propertychange change keyup paste input", function(){
    // do stuff;
});

> jQuery 1.7

$("#input").on("propertychange change keyup paste input", function(){
    // do stuff;
});

এটি আইই 8 / আইই 9, এফএফ, ক্রোমে কাজ করে


1
এই উত্তরটির সাথে আমার যে সমস্যাটি রয়েছে তা হ'ল একবার আপনি পাঠ্যবক্সটি ঝাপসা করে ফেলুন, এমনকি যদি মানটি পরিবর্তন হয় না। অপরাধী হ'ল "পরিবর্তন"।
জাস্টিন

আপনি কি ক্রোম ব্যবহার করছেন? দেখে মনে হচ্ছে এটি ক্রোমযুক্ত
ক্যাটফিশ

কাজ করে তবে একটি ক্ষুদ্র বাগ রয়েছে যদি আপনি যদি console.logক্ষেত্রের মান করেন তবে যখনই আপনি কোনও চরিত্রে কী করেন তখন এটি দুবার লগ হয়।
স্যামুয়েল এম।

21

কী স্ট্রোকের আগে চেকবক্সে পাঠ্যটি কী ছিল তা মনে রাখতে ক্লোজারগুলি ব্যবহার করুন এবং এটি পরিবর্তন হয়েছে কিনা তা পরীক্ষা করুন।

হাঁ। আপনাকে ক্লোজারগুলি অগত্যা ব্যবহার করতে হবে না, তবে আপনাকে পুরানো মানটি মনে করতে হবে এবং এটি নতুনের সাথে তুলনা করতে হবে।

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

সুতরাং আপনার যদি প্রতিটি পরিবর্তন অবশ্যই সনাক্ত করতে হয় তবে আপনাকে এটির জন্য জরিপ করতে হবে। আপনি window.setIntervalক্ষেত্রটি তার আগের মানটির (প্রতি) দ্বিতীয় সেকেন্ডের তুলনায় পরীক্ষা করতে পারেন। এছাড়াও আপনি টেলিগ্রাম পারে onkeyupযে, সেই পরিবর্তনগুলি একই ফাংশন হয় keypresses দ্বারা সৃষ্ট দ্রুততর প্রতিফলিত হয়।

কষ্টকর? হ্যাঁ. তবে এটি বা কেবল এটি সাধারণ এইচটিএমএল অন্বেষণের উপায়ে করুন এবং তাত্ক্ষণিক আপডেট করার চেষ্টা করবেন না।


1
এই দিনগুলিতে এইচটিএমএল 5 inputইভেন্টটি কার্যকর এবং সমস্ত বড় ব্রাউজারগুলির বর্তমান সংস্করণগুলিতে কাজ করে।
টিম ডাউন

13
$(document).on('input','#mytxtBox',function () { 
 console.log($('#mytxtBox').val());
});

আপনি পাঠ্যবক্সে সামগ্রীর পরিবর্তন সনাক্ত করতে 'ইনপুট' ইভেন্টটি ব্যবহার করতে পারেন। ইভেন্টটিকে আবদ্ধ করতে 'লাইভ' ব্যবহার করবেন না কারণ এটি জ্যাকুয়েরি -১. 1. এ অবমানিত হয়েছে, তাই 'অন' ব্যবহার করুন।


@ নাভারাজান সবেমাত্র আইই 9 তে এটি পরীক্ষা করেছে। সত্যিই ব্যাকস্পেসে কাজ করে না।
ফ্লোরস

আমি লাইভটি ব্যবহার করতে চাই না, তবে আমার যে সমস্যাটি হচ্ছে তা হ'ল আমি একরকম "ভবিষ্যতের দিকে ফিরে" গিয়েছি এবং এমন একটি এমভিসি 3 প্রকল্পে যা দলীয় নেতৃত্ব "বাক্সের বাইরে" থাকতে চায় না কেবল EF 4.0, তবে jquery 1.5.1 ব্যবহার করা হচ্ছে THUS .on
টম স্টিকেল

5

আমি ধরে নিয়েছি যে আপনি যখন পাঠ্যবক্সটি পরিবর্তন করবেন (যেমন অজ্যাক্সের মাধ্যমে কিছু ডেটা পুনরুদ্ধার করবেন) তখন ইন্টারেক্টিভ কিছু করতে চাইছেন। আমি এই একই কার্যকারিতা খুঁজছিলাম। আমি জানি যে গ্লোবাল ব্যবহার করা সবচেয়ে মজবুত বা মার্জিত সমাধান নয়, তবে আমি এটাই দিয়েছিলাম। এখানে একটি উদাহরণ:

var searchValue = $('#Search').val();
$(function () {
    setTimeout(checkSearchChanged, 0.1);
});

function checkSearchChanged() {
    var currentValue = $('#Search').val();
    if ((currentValue) && currentValue != searchValue && currentValue != '') {
        searchValue = $('#Search').val();
        $('#submit').click();
    }
    else {
        setTimeout(checkSearchChanged, 0.1);
    }
}

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

আমার ক্ষেত্রে, আমি এএসপি.নেট এমভিসি ব্যবহার করছি যাতে আপনি কীভাবে এটি এমভিসি আজাক্সের সাথে নীচের পোস্টে যুক্ত করতে পারেন তা দেখতে পাবেন:

http://geekswithblogs.net/DougLampe/archive/2010/12/21/simple-interactive-search-with-jquery-and-asp.net-mvc.aspx


4

আমি jQuery UI স্বয়ংসম্পূর্ণ উইজেটটি একবার দেখে নেওয়ার পরামর্শ দেব। তারা বেশিরভাগ কেসগুলি পরিচালনা করেছেন কারণ তাদের কোড বেসটি বেশিরভাগ ক্ষেত্রে তুলনায় বেশি পরিপক্ক।

নীচে একটি ডেমো পৃষ্ঠার লিঙ্ক রয়েছে যাতে আপনি এটি কার্যকরভাবে যাচাই করতে পারেন। http://jqueryui.com/demos/autocomplete/#default

উত্সটি পড়ে এবং তারা কীভাবে এটি সমাধান করেছে তা দেখে আপনি সর্বাধিক উপকার পাবেন। আপনি এটি এখানে পাবেন: https://github.com/jquery/jquery-ui/blob/master/ui/jquery.ui.autocomplete.js

মূলত তারা এগুলি করে, তারা আবদ্ধ হয় input, keydown, keyup, keypress, focus and blur। তারপরে তাদের কাছে সমস্ত ধরণের কীগুলির জন্য বিশেষ হ্যান্ডলিং রয়েছে page up, page down, up arrow key and down arrow key। পাঠ্যবক্সের বিষয়বস্তু পাওয়ার আগে একটি টাইমার ব্যবহার করা হয়। যখন কোনও ব্যবহারকারী একটি কী টাইপ করে যা কোনও কমান্ডের সাথে সামঞ্জস্য না করে (আপ কী, ডাউন কী এবং আরও কিছু) সেখানে একটি টাইমার থাকে যা প্রায় 300 মিলিসেকেন্ডের পরে সামগ্রীটি অন্বেষণ করে। কোডে এটির মতো দেখাচ্ছে:

// switch statement in the 
switch( event.keyCode ) {
            //...
            case keyCode.ENTER:
            case keyCode.NUMPAD_ENTER:
                // when menu is open and has focus
                if ( this.menu.active ) {
                    // #6055 - Opera still allows the keypress to occur
                    // which causes forms to submit
                    suppressKeyPress = true;
                    event.preventDefault();
                    this.menu.select( event );
                }
                break;
            default:
                suppressKeyPressRepeat = true;
                // search timeout should be triggered before the input value is changed
                this._searchTimeout( event );
                break;
            }
// ...
// ...
_searchTimeout: function( event ) {
    clearTimeout( this.searching );
    this.searching = this._delay(function() { // * essentially a warpper for a setTimeout call *
        // only search if the value has changed
        if ( this.term !== this._value() ) { // * _value is a wrapper to get the value *
            this.selectedItem = null;
            this.search( null, event );
        }
    }, this.options.delay );
},

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

সুতরাং আপনি হয় উইজেট ব্যবহার করতে পারেন বা কোডটি নিজের উইজেটে অনুলিপি করতে পারেন যদি আপনি jQuery UI ব্যবহার করেন না (বা আমার ক্ষেত্রে একটি কাস্টম উইজেট বিকাশ করছে)।


2

আমি জিজ্ঞাসা করতে চাই যে পাঠ্যবাক্সের বিষয়বস্তু বাস্তব সময়ে পরিবর্তিত হলে আপনি কেন সনাক্ত করার চেষ্টা করছেন ?

একটি বিকল্প হ'ল একটি টাইমার সেট করে (সেটইন্টওয়ালের মাধ্যমে?) এবং বর্তমানের সাথে সর্বশেষ সংরক্ষিত মানটির তুলনা করুন এবং তারপরে একটি টাইমার পুনরায় সেট করুন। এটি চাবি, মাউস, আপনি বিবেচনা করেননি এমন কিছু অন্যান্য ইনপুট ডিভাইস, এমনকি জাভাস্ক্রিপ্ট অ্যাপ্লিকেশনটির বিভিন্ন অংশ থেকে মান (অন্য কোনও সম্ভাব্যতা যার উল্লেখ নেই) পরিবর্তিত হয়েছে কিনা তা কোনও পরিবর্তন ধরা গ্যারান্টিযুক্ত।


আমার পরিস্থিতি (যা আমাকে এই প্রশ্নের দিকে নিয়ে গিয়েছিল) হ'ল পাঠ্যবক্সের পরিমাণ পরিবর্তন করা হলে আমাকে একটি 'আপডেট কার্ট' বোতামটি দেখানো দরকার। ব্যবহারকারীর ফোকাস হারাতে হবে এমন কোনও ধারণা নেই এবং অন্যথায় বোতামটি নাও দেখতে পারে।
সাইমন_উইভার

দুঃখিত, আমি নিশ্চিত নই যে এটি "একটি তফসিলের জন্য কেন আলাদা করার জন্য পরীক্ষা করবেন না" এই প্রশ্নের জবাব দেয়। কেবল প্রায়শই পর্যাপ্ত পরিমাণে পরীক্ষা করুন (প্রতি সেকেন্ডের 1/4 তম) এবং ব্যবহারকারী কোনও পার্থক্য জানতে পারবেন না।
ডিভি কে

1

আপনি পরিবর্তন ইভেন্ট ব্যবহার বিবেচনা ?

$("#myTextBox").change(function() { alert("content changed"); });

5
আফাইক, এটি তখনই ট্রিগার করা হয় যখন উপাদানটির ফোকাসটি হারিয়ে যায়। ক্লোজারগুলির সাথে পরিচিত কেউ এই সম্পর্কে সম্ভবত জানেন। :)
সাইমন

হ্যাঁ, এটি করবে না - পরিবর্তিত ইভেন্টটি তখনই বলা হয় যখন পাঠ্যবক্সটি মনোযোগ হারায়। কীটি টিপানোর পরে আমি পরিবর্তনটি পরিচালনা করতে চাই।
ওলামুন্ডো

1

textchangeক্রস ব্রাউজার inputসামঞ্জস্যের জন্য কাস্টমাইজড jQuery শিমের মাধ্যমে ইভেন্টটি ব্যবহার করুন । http://benalpert.com/2013/06/18/a-near-perfect-oninput-shim-for-ie-8-and-9.html (সর্বাধিক কাঁটাযুক্ত গিথুব: https://github.com/pandell /jquery-splendid-textchange/blob/master/jquery.splendid.textchange.js )

এটি সমস্ত ইনপুট ট্যাগ সহ হ্যান্ডলগুলি সহ হ্যান্ডেলগুলি পরিচালনা <textarea>content</textarea>করে যা সর্বদা change keyupইত্যাদি ইত্যাদি! (!) কেবলমাত্র jQuery ট্যাগগুলি ধারাবাহিকভাবে on("input propertychange")হ্যান্ডেল করে <textarea>এবং উপরোক্ত সমস্ত ব্রাউজারগুলির জন্য শিথিল যা inputইভেন্টটি বুঝতে পারে না ।

<!DOCTYPE html>
<html>
<head>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script src="https://raw.githubusercontent.com/pandell/jquery-splendid-textchange/master/jquery.splendid.textchange.js"></script>
<meta charset=utf-8 />
<title>splendid textchange test</title>

<script> // this is all you have to do. using splendid.textchange.js

$('textarea').on("textchange",function(){ 
  yourFunctionHere($(this).val());    });  

</script>
</head>
<body>
  <textarea style="height:3em;width:90%"></textarea>
</body>
</html>

জেএস বিন পরীক্ষা

এটি কিপআপে পেস্ট, ডিলিট এবং ডুপ্লিকেট প্রচেষ্টা পরিচালনা করে না।

যদি কোনও শিম ব্যবহার না করে, jQuery on("input propertychange")ইভেন্টগুলি ব্যবহার করুন ।

// works with most recent browsers (use this if not using src="...splendid.textchange.js")

$('textarea').on("input propertychange",function(){ 
  yourFunctionHere($(this).val());    
});  

0

এখানে কাজ করার একটি সম্পূর্ণ উদাহরণ রয়েছে

<html>
<title>jQuery Summing</title>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script>
$(document).ready(function() {
$('.calc').on('input', function() {
var t1 = document.getElementById('txt1');
var t2 = document.getElementById('txt2');
var tot=0;
if (parseInt(t1.value))
tot += parseInt(t1.value);
if (parseInt(t2.value))
tot += parseInt(t2.value);
document.getElementById('txt3').value = tot;
});
});
</script>
</head>
<body>
<input type='text' class='calc' id='txt1'>
<input type='text' class='calc' id='txt2'>
<input type='text' id='txt3' readonly>
</body>
</html>

0

এর মতো কিছু কাজ করা উচিত, মূলত কারণ focusএবং focusoutদুটি পৃথক মান সহ শেষ হয়। আমি এখানে ব্যবহার করছি dataকারণ এটি উপাদানটিতে মানগুলি সঞ্চয় করে তবে ডমকে স্পর্শ করে না। এটির উপাদানটির সাথে সংযুক্ত মানটি সংরক্ষণ করার একটি সহজ উপায়। আপনি কেবল উচ্চতর স্কোপযুক্ত ভেরিয়েবলটি সহজেই ব্যবহার করতে পারেন।

var changed = false;

$('textbox').on('focus', function(e) {
    $(this).data('current-val', $(this).text();
});

$('textbox').on('focusout', function(e) {
    if ($(this).data('current-val') != $(this).text())
        changed = true;
    }
    console.log('Changed Result', changed);
}

0

যখনই কোনও পাঠ্যবক্সের সামগ্রী ব্যবহারকারীর দ্বারা পরিবর্তন হয়েছে এবং জাভাস্ক্রিপ্ট কোড দ্বারা সংশোধিত হয়েছে তখনই এই কোডটি সনাক্ত করে।

var $myText = jQuery("#textbox");

$myText.data("value", $myText.val());

setInterval(function() {
    var data = $myText.data("value"),
    val = $myText.val();

    if (data !== val) {
        console.log("changed");
        $myText.data("value", val);
    }
}, 100);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.