JQuery এ ইনপুট [টাইপ = পাঠ্য] এর মান পরিবর্তন সনাক্ত করা


159

আমি প্রতিবার একটি নির্দিষ্ট ইনপুট বাক্সের মান পরিবর্তিত করে একটি ক্রিয়াকলাপ সম্পাদন করতে চাই। এটি প্রায় সঙ্গে কাজ করে $('input').keyup(function), কিন্তু বাক্সে পাঠ্য আটকানোর সময় কিছুই ঘটে না। $input.change(function)যখন ইনপুটটি অস্পষ্ট হবে কেবল তখনই ট্রিগার হবে, সুতরাং যখনই কোনও পাঠ্য বাক্সের মান পরিবর্তন হয়েছে তখন আমি কীভাবে তাৎক্ষণিকভাবে জানতে পারি?


2
সুতরাং কেন উভয় keyupএবং pasteইভেন্ট উভয় বাঁধা ?
ইলিয়া জি

devcurry.com/2009/07/… - কাটা / অনুলিপি / আটকানো ইভেন্টগুলি সনাক্ত করা
BeRecursive

2
@ লিহো 1eye pasteকেবলমাত্র আমিই ভেবেছিলাম, আসন্ন সমস্ত পথের কথা ভাবার চেয়ে আমি একটি নির্দিষ্ট পরিবর্তন শুনতে চাই।
জেরিকো

@ জেরিকো এটিই কেবলমাত্র দুটি উপায়ের মান পরিবর্তন করা যায় (জেএস কোডের মাধ্যমে সুস্পষ্ট আপডেটের পাশে)।
ইলিয়া জি

আপনি Ctlr-X ( cut) ক্যাপচার করতেও চান ।
অ্যালেক্সিস উইল্কে

উত্তর:


341

কেবল 'পুনরায় বিবেচনা করুন যে' অন '' বাইন্ড 'ফাংশনটির সাথে পুনরায় সংযুক্ত করা হয়, তাই সর্বদা ইভেন্ট শ্রোতাদের এভাবে ব্যবহার করার চেষ্টা করুন:

$("#myTextBox").on("change paste keyup", function() {
   alert($(this).val()); 
});

pasteযদিও কেন ? প্রথমে আমি ভাবলাম এটি কেবল তখনই কাজ করে যদি আমরা কিছু দিয়ে পেস্ট করি CTRL+V
কালো

3
@ নিকোলাস এস। এক্সু: মূল্যবোধের প্রত্যক্ষ স্বাক্ষর কোনও ডিওএম ইভেন্টকে ট্রিগার করে না
আলেজান্দ্রো সিলভা

এর console.log()পরিবর্তে ব্যবহার করা আরও ভাল হবে alert। কীআপ করার জন্য খুব বিরক্তিকর হবে alert
সাইটসুনি

4
@ সাইটসুনি হ্যাঁ নিশ্চিত, সতর্কতা বিরক্তিকর, তবে এই ক্ষেত্রে মান পরিবর্তনের জন্য কার্যকর করা কোডের একটি উদাহরণ এটি আপনার পছন্দসই পেডলোড হতে পারে।
আলেজান্দ্রো সিলভা

1
আপনি যদি ডান ক্লিক করে পেস্ট করেন তবে এটি পেস্টের পূর্বে ইনপুটটির মান ফেরত দেবে।
alstr

104

বিবরণ

আপনি jQuery এর .bind()পদ্ধতি ব্যবহার করে এটি করতে পারেন । পরীক্ষা করে দেখুন jsFiddle

নমুনা

এইচটিএমএল

<input id="myTextBox" type="text"/>

jQuery এর

$("#myTextBox").bind("change paste keyup", function() {
   alert($(this).val()); 
});

অধিক তথ্য


15

এটি ব্যবহার করে দেখুন cred

আমার প্রশ্নের উত্তর দেওয়ার জন্য এখানে: /programming/24651811/jquery-keyup-doesnt-work-with-keycode-filtering?noredirect=1#comment38213480_24651811

এই সমাধানটি আমার প্রকল্পে অগ্রগতি করতে সহায়তা করেছিল।

$("#your_textbox").on("input propertychange",function(){

   // Do your thing here.
});

দ্রষ্টব্য: আইই এর নিম্ন সংস্করণগুলির জন্য সম্পত্তি বিনিময়।


6

আপনি পাঠ্যবাক্স ইভেন্টগুলিও ব্যবহার করতে পারেন -

<input id="txt1" type="text" onchange="SetDefault($(this).val());" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();">

function SetDefault(Text){
  alert(Text);
}

এটা চেষ্টা কর


5

এটা চেষ্টা কর:

মূলত, প্রতিটি ইভেন্টের জন্য কেবল অ্যাকাউন্ট:

এইচটিএমএল:

<input id = "textbox" type = "text">

jQuery:

$("#textbox").keyup(function() { 
    alert($(this).val());  
}); 

$("#textbox").change(function() { 
alert($(this).val());  
}); 



0

এটি ব্যবহার করুন: https://github.com/gilamran/JQuery-Plugin-AnyChange

এটি কন্টেন্ট মেনু (মাউস ব্যবহার করে) সহ ইনপুট পরিবর্তন করার সমস্ত উপায় পরিচালনা করে


তুমি এটা কিভাবে ব্যবহার কর? আমি এটি আমার HTML এ অন্তর্ভুক্ত করেছি এবং include ("ইনপুট") ব্যবহার করেছি any যে কোনও পরিবর্তন (ফাংশন (ই) {কনসোল.লগ (ই);}); তবে এটি কখনই কনসোল.লগ লাইনে পৌঁছায় না
ওফার গাল

0

এই ইভেন্টগুলির সংমিশ্রণটি আমার পক্ষে কাজ করেছিল:

$("#myTextBox").on("input paste", function() {
   alert($(this).val()); 
});

0

ঘটনা cutবা selectঘটনাগুলি ভুলে যাবেন না !

গৃহীত উত্তর প্রায় নিখুঁত, তবে এটি ঘটনা cutএবং selectঘটনাগুলি ভুলে যায় ।

cut ব্যবহারকারী পাঠ্য কেটে দিলে বরখাস্ত করা হয় (সিটিআরএল + এক্স বা ডান ক্লিকের মাধ্যমে)

select যখন ব্যবহারকারী ব্রাউজার-প্রস্তাবিত বিকল্প নির্বাচন করে তখন তা বরখাস্ত করা হয়

আপনার এগুলিও যুক্ত করা উচিত:

$("#myTextBox").on("change paste keyup cut select", function() {
   //Do your function 
});
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.