প্রতিটি উত্তরের কিছু পয়েন্ট অনুপস্থিত, সুতরাং আমার সমাধানটি এখানে:
$("#input").on("input", function(e) {
var input = $(this);
var val = input.val();
if (input.data("lastval") != val) {
input.data("lastval", val);
//your change action goes here
console.log(val);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input">
<p>Try to drag the letters and copy paste</p>
Input Eventউপর আগুন কীবোর্ড ইনপুট, মাউস টেনে আনুন , স্বতঃপূর্ণ এবং কপি পেস্ট-এর Chrome এবং ফায়ারফক্স উপর পরীক্ষা। পূর্ববর্তী মানটির জন্য অনুসন্ধান করা এটি সত্যিকারের পরিবর্তনগুলি সনাক্ত করে, যার অর্থ একই জিনিসটি আটকানোর সময় বা একই চরিত্রটি টাইপ করার সময় গুলি চালানো হয় না ইত্যাদি etc.
কার্যকারী উদাহরণ: http://jsfiddle.net/g6pcp/473/
হালনাগাদ:
এবং আপনি যদি change function কেবল তখনই চালনা করতে চান যখন ব্যবহারকারী টাইপিং শেষ করে এবং পরিবর্তনটির ক্রিয়াকলাপটি কয়েকবার বন্ধ করতে প্রতিরোধ করে, আপনি এটি ব্যবহার করতে পারেন:
var timerid;
$("#input").on("input", function(e) {
var value = $(this).val();
if ($(this).data("lastval") != value) {
$(this).data("lastval", value);
clearTimeout(timerid);
timerid = setTimeout(function() {
//your change action goes here
console.log(value);
}, 500);
};
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="input">
যদি ব্যবহারকারী টাইপ করা শুরু করে (উদাঃ "ফুবার") এই কোডটি আপনার change actionপ্রতিটি অক্ষরের ব্যবহারকারীর জন্য চালনা করতে বাধা দেয় এবং কেবল যখন ব্যবহারকারী টাইপ করা বন্ধ করে দেয় তখন এটি বিশেষত যখন আপনি সার্ভারে ইনপুট প্রেরণ করেন (বিশেষত অনুসন্ধানের ইনপুট), তখন এটির জন্য বিশেষত ভাল পথ সার্ভার আছে শুধুমাত্র একটি জন্য অনুসন্ধান foobarএবং জন্য না ছয় অনুসন্ধান fএবং তারপর foএবং তারপর fooএবং foobইত্যাদি।