উত্তর:
তুমি ব্যবহার করতে পার .change()
$('input[name=myInput]').change(function() { ... });
তবে এই ইভেন্টটি কেবল তখনই চালিত হবে যখন নির্বাচক ফোকাস হারিয়ে ফেলেছে, সুতরাং এই কাজটি করতে আপনাকে অন্য কোথাও ক্লিক করতে হবে।
যদি সেটা পুরোপুরি ঠিক তোমার জন্য নয়, আপনি অন্যান্য কিছু ব্যবহার করতে পারে , jQuery ঘটনা মত keyup , keydown বা কী টেপার - যদি আপনি চান সঠিক প্রভাব উপর নির্ভর করে।
change
কেবল তখনই জ্বলবে যখন ইনপুট উপাদানটির ফোকাসটি হারাবে। এখানে এমন ঘটনাও রয়েছে input
যা যখনই ফোকাস হারাতে না পারে পাঠ্যবাক্স আপডেট হয় s মূল ইভেন্টগুলির মতো নয় এটি পাঠ্য আটকানো / টেনে আনার জন্যও কাজ করে।
change
IE9 দ্বারা সমর্থিত নয়, আপনি ব্যবহার করতে পারেন focusout
একই comportment আছে
যেমন @ পিমভিডিবি তার মন্তব্যে বলেছেন,
নোট করুন যে পরিবর্তন কেবল তখনই জ্বলবে যখন ইনপুট উপাদানটির ফোকাসটি হারাবে। এখানে ইনপুট ইভেন্ট রয়েছে যা যখনই ফোকাস হারাতে না পারে পাঠ্যবক্স আপডেট হয় তখনই তা জ্বলে ওঠে। মূল ইভেন্টগুলির মতো নয় এটি পাঠ্য আটকানো / টেনে আনার জন্যও কাজ করে।
( ডকুমেন্টেশন দেখুন ।)
এটি এত দরকারী, এটি একটি উত্তরে এটি রাখা মূল্যবান। বর্তমানে (v1.8 *?) Jquery এ কোনও ইনপুট () সুবিধা নেই, তাই এটি করার উপায়টি
$('input.myTextInput').on('input',function(e){
alert('Changed!')
});
$('form').on('change input', function);
তা আমার জন্য কৌশলটি করেছে। ধন্যবাদ।
আমি কীপ ইভেন্টটি নীচের মতো কিছু ব্যবহার করার পরামর্শ দেব:
$('elementName').keyup(function() {
alert("Key up detected");
});
একই ফলাফলটি অর্জনের কয়েকটি উপায় রয়েছে তাই আমি অনুমান করি এটির পছন্দটি নীচে নেমেছে এবং আপনি কীভাবে এটি সঠিকভাবে কাজ করতে চান তার উপর নির্ভর করে।
আপডেট: এটি কেবল ম্যানুয়াল ইনপুটটির জন্য কাজ করে যা অনুলিপি এবং পেস্ট করে না।
অনুলিপি এবং পেস্ট করার জন্য আমি নিম্নলিখিতগুলি সুপারিশ করব:
$('elementName').on('input',function(e){
// Code here
});
আমি যে কোডটি ব্যবহার করি তা এখানে:
$("#tbSearch").on('change keyup paste', function () {
ApplyFilter();
});
function ApplyFilter() {
var searchString = $("#tbSearch").val();
// ... etc...
}
<input type="text" id="tbSearch" name="tbSearch" />
এটি বেশ সুন্দরভাবে কাজ করে, বিশেষত যখন একটি jqGrid
নিয়ন্ত্রণের সাথে জুটিবদ্ধ হয় । আপনি কেবল একটি পাঠ্যবক্সে টাইপ করতে পারেন এবং তাত্ক্ষণিকভাবে আপনার ফলাফলগুলি দেখতে পারেন jqGrid
।
এটি করার একটি এবং একমাত্র নির্ভরযোগ্য উপায় রয়েছে এবং এটি হ'ল ব্যবধানে মানটি টানা এবং এটি একটি ক্যাশেড মানের সাথে তুলনা করে।
একমাত্র উপায় হবার কারণ হ'ল বিভিন্ন ইনপুট (কীবোর্ড, মাউস, পেস্ট, ব্রাউজারের ইতিহাস, ভয়েসইনপুট ইত্যাদি) ব্যবহার করে কোনও ইনপুট ক্ষেত্র পরিবর্তন করার একাধিক উপায় রয়েছে এবং আপনি ক্রসে স্ট্যান্ডার্ড ইভেন্টগুলি ব্যবহার করে সেগুলি কখনই আবিষ্কার করতে পারবেন না ব্রাউজার পরিবেশ।
ভাগ্যক্রমে, jQuery এ ইভেন্ট অবকাঠামোকে ধন্যবাদ, আপনার নিজের ইনপুট এক্সচেঞ্জ ইভেন্টটি যুক্ত করা বেশ সহজ। আমি এখানে তাই করেছি:
$.event.special.inputchange = {
setup: function() {
var self = this, val;
$.data(this, 'timer', window.setInterval(function() {
val = self.value;
if ( $.data( self, 'cache') != val ) {
$.data( self, 'cache', val );
$( self ).trigger( 'inputchange' );
}
}, 20));
},
teardown: function() {
window.clearInterval( $.data(this, 'timer') );
},
add: function() {
$.data(this, 'cache', this.value);
}
};
এটি ব্যবহার করুন: $('input').on('inputchange', function() { console.log(this.value) });
এখানে একটি ডেমো রয়েছে: http://jsfiddle.net/LGAWY/
আপনি একাধিক অন্তর ভয় করছেন, তাহলে আপনি আবদ্ধ করতে পারেন / আবদ্ধমুক্ত এই ঘটনাটি focus
/ blur
।
$('body').on('inputchange', 'input', function() { console.log(this.value) });
? বা না, যেমনটি এখানে উল্লেখ করা হয়েছে: github.com/EightMedia/hammer.js/pull/98 ?
<input id="item123" class="firstName" type="text" value="Hello there" data-someattr="CoolExample" />
$(".firstName").on('change keyup paste', function () {
var element = $(this);
console.log(element);
var dataAttribute = $(element).attr("data-someattr");
console.log("someattr: " + dataAttribute );
});
this
পুরো উপাদানটিতে অ্যাক্সেস পেতে কীওয়ার্ডটি ব্যবহার করার পরামর্শ দিচ্ছি যাতে আপনার এই উপাদানটি দিয়ে যা প্রয়োজন তা করতে সক্ষম হন।
এটি গতিশীল / আজাক্স কল হলেও নীচে কাজ করবে work
লিপি:
jQuery('body').on('keyup','input.addressCls',function(){
console.log('working');
});
HTML,
<input class="addressCls" type="text" name="address" value="" required/>
আমি আশা করি এই কার্যকারী কোডটি এমন কাউকে সহায়তা করবে যারা গতিশীল / আজাক্স কলগুলিতে অ্যাক্সেস করার চেষ্টা করছে ...
আপনি কেবল আইডি দিয়ে কাজ করতে পারেন
$("#your_id").on("change",function() {
alert(this.value);
});
আপনি এটি বিভিন্ন উপায়ে করতে পারেন, কীআপ তাদের মধ্যে একটি। তবে আমি পরিবর্তনের সাথে সাথে নীচে উদাহরণ দিচ্ছি।
$('input[name="vat_id"]').on('change', function() {
if($(this).val().length == 0) {
alert('Input field is empty');
}
});
এনবি: ইনপুট [নাম = "ভ্যাট_আইডি"] আপনার ইনপুট আইডি বা নামের সাথে প্রতিস্থাপন করুন ।
আপনি টাইপ করার সাথে সাথে ইভেন্টটি ট্রিগার করতে চাইলে নিম্নলিখিতটি ব্যবহার করুন:
$('input[name=myInput]').on('keyup', function() { ... });
আপনি যদি ইনপুট ক্ষেত্রটি রেখে ইভেন্টটি ট্রিগার করতে চান তবে নিম্নলিখিতটি ব্যবহার করুন:
$('input[name=myInput]').on('change', function() { ... });
$(document).on('change', 'input[name=myInput]', function() { ... });
$("input").change(function () {
alert("Changed!");
});
আপনি ব্যবহার করতে পারে .keypress()
।
উদাহরণস্বরূপ, এইচটিএমএল বিবেচনা করুন:
<form>
<fieldset>
<input id="target" type="text" value="Hello there" />
</fieldset>
</form>
<div id="other">
Trigger the handler
</div>
ইভেন্ট হ্যান্ডলারটি ইনপুট ক্ষেত্রে আবদ্ধ হতে পারে:
$("#target").keypress(function() {
alert("Handler for .keypress() called.");
});
আমি অ্যান্ডির সাথে পুরোপুরি একমত; সবকিছু আপনি কীভাবে এটি কাজ করতে চান তার উপর নির্ভর করে।