আমি একটি ওয়েব পৃষ্ঠা তৈরি করছি যেখানে আমার কাছে একটি ইনপুট পাঠ্য ক্ষেত্র রয়েছে যেখানে আমি কেবলমাত্র (0,1,2,3,4,5 ... 9) 0-9 এর মতো সংখ্যার অক্ষরগুলিকে অনুমতি দিতে চাই।
আমি কীভাবে jQuery ব্যবহার করে এটি করতে পারি?
আমি একটি ওয়েব পৃষ্ঠা তৈরি করছি যেখানে আমার কাছে একটি ইনপুট পাঠ্য ক্ষেত্র রয়েছে যেখানে আমি কেবলমাত্র (0,1,2,3,4,5 ... 9) 0-9 এর মতো সংখ্যার অক্ষরগুলিকে অনুমতি দিতে চাই।
আমি কীভাবে jQuery ব্যবহার করে এটি করতে পারি?
উত্তর:
দ্রষ্টব্য: এটি একটি আপডেট করা উত্তর। নীচের মন্তব্যগুলিতে একটি পুরানো সংস্করণ উল্লেখ করা হয়েছে যা কীকোডগুলির সাথে চারপাশে গোলযোগ করেছিল।
এটি নিজে জেএসফিডেলে চেষ্টা করে দেখুন ।
এর জন্য কোনও নেটিভ জিকুয়ের প্রয়োগ নেই, তবে আপনি <input>
নিম্নলিখিত inputFilter
প্লাগইন দিয়ে কোনও পাঠ্যের ইনপুট মানগুলি ফিল্টার করতে পারেন (অনুলিপি + পেস্ট করুন, টেনে আনুন + ড্রপ করুন, কীবোর্ড শর্টকাটগুলি, প্রসঙ্গ মেনু ক্রিয়াকলাপগুলি, টাইপযোগ্য নয় কীগুলি, ক্যারেটের অবস্থান, আলাদা) কীবোর্ড লেআউট এবং আই 9 এর পরে সমস্ত ব্রাউজার ):
// Restricts input for the set of matched elements to the given inputFilter function.
(function($) {
$.fn.inputFilter = function(inputFilter) {
return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() {
if (inputFilter(this.value)) {
this.oldValue = this.value;
this.oldSelectionStart = this.selectionStart;
this.oldSelectionEnd = this.selectionEnd;
} else if (this.hasOwnProperty("oldValue")) {
this.value = this.oldValue;
this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);
} else {
this.value = "";
}
});
};
}(jQuery));
আপনি এখন inputFilter
একটি ইনপুট ফিল্টার ইনস্টল করতে প্লাগইনটি ব্যবহার করতে পারেন :
$(document).ready(function() {
$("#myTextBox").inputFilter(function(value) {
return /^\d*$/.test(value); // Allow digits only, using a RegExp
});
});
আরও ইনপুট ফিল্টার উদাহরণগুলির জন্য জেএসফিডাল ডেমো দেখুন । এছাড়াও নোট করুন যে আপনাকে এখনও সার্ভার সাইডের বৈধতা অবশ্যই করতে হবে!
jQuery আসলে এর জন্য প্রয়োজন হয় না, আপনি খাঁটি জাভাস্ক্রিপ্ট দিয়ে একই জিনিসটি করতে পারেন। এই উত্তর দেখুন ।
এইচটিএমএল 5 এর একটি নেটিভ সমাধান রয়েছে <input type="number">
( স্পেসিফিকেশনটি দেখুন ), তবে নোট করুন যে ব্রাউজার সমর্থনটি পরিবর্তিত হয়:
step
, সমর্থন করে নাmin
max
বৈশিষ্ট্যাবলী।e
এবং E
ক্ষেত্রের মধ্যে প্রবেশ করতে দেয়। আরো দেখুন এই প্রশ্নের ।W3schools.com এ নিজে চেষ্টা করুন ।
আমি যে ফাংশনটি ব্যবহার করি তা এখানে:
// Numeric only control handler
jQuery.fn.ForceNumericOnly =
function()
{
return this.each(function()
{
$(this).keydown(function(e)
{
var key = e.charCode || e.keyCode || 0;
// allow backspace, tab, delete, enter, arrows, numbers and keypad numbers ONLY
// home, end, period, and numpad decimal
return (
key == 8 ||
key == 9 ||
key == 13 ||
key == 46 ||
key == 110 ||
key == 190 ||
(key >= 35 && key <= 40) ||
(key >= 48 && key <= 57) ||
(key >= 96 && key <= 105));
});
});
};
এরপরে আপনি এটি করে আপনার নিয়ন্ত্রণে এটি সংযুক্ত করতে পারেন:
$("#yourTextBoxName").ForceNumericOnly();
return this.each(function()
?
each
থেকে return this.each(function()
একাধিক বস্তু করার অনুমতি যেমন HaggleLad বলেন, এবং return
অংশ কলারের কাছে jQuery এর অবজেক্ট ফিরতে যেমন chaining অনুমতি দেওয়া$("input[type='text'").ForceNumericOnly().show()
সঙ্গতিপূর্ণভাবে:
<input name="number" onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')">
আপত্তিজনক স্টাইল (jQuery সহ):
$('input[name="number"]').keyup(function(e)
{
if (/\D/g.test(this.value))
{
// Filter non-digits from input value.
this.value = this.value.replace(/\D/g, '');
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="number">
onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')"
।
/[^0-9]|^0+(?!$)/g
শীর্ষস্থানীয় শূন্য রোধ করতে আপনি পরিবর্তন করতে পারেন mod
খাঁটি অঙ্কের অক্ষরের পরীক্ষার জন্য আপনি কেবল একটি সাধারণ জাভাস্ক্রিপ্ট নিয়মিত প্রকাশ করতে পারেন:
/^[0-9]+$/.test(input);
যদি ইনপুটটি সংখ্যাসূচক হয় বা মিথ্যা হয় তবে এটি সত্য করে।
বা ইভেন্ট কীকোডের জন্য, নীচে সহজ ব্যবহার:
// Allow: backspace, delete, tab, escape, enter, ctrl+A and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
// Allow: Ctrl+A
(e.keyCode == 65 && e.ctrlKey === true) ||
// Allow: home, end, left, right
(e.keyCode >= 35 && e.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
var charValue = String.fromCharCode(e.keyCode)
, valid = /^[0-9]+$/.test(charValue);
if (!valid) {
e.preventDefault();
}
আপনি ইনপুট ইভেন্টে এটি ব্যবহার করতে পারেন:
$(document).on("input", ".numeric", function() {
this.value = this.value.replace(/\D/g,'');
});
কিন্তু, এই কোড সুবিধা কি?
decimal
মধ্যে 0.0
থেকে 24.0
আমি এটা ঢুকতে করতে পারছি না.
this.value = Number(this.value.replace(/\D/g, ''));
সংক্ষিপ্ত এবং মিষ্টি - এমনকি যদি এটি 30+ উত্তর পরে খুব বেশি মনোযোগ না পায়;)
$('#number_only').bind('keyup paste', function(){
this.value = this.value.replace(/[^0-9]/g, '');
});
জাভাস্ক্রিপ্ট ফাংশনটি ন্যান ,
if (isNaN($('#inputid').val()))
যদি (isNaN (document.getElementById ('ইনপুট্ড')। ভাল ())
if (isNaN(document.getElementById('inputid').value))
আপডেট: এবং এখানে একটি দুর্দান্ত নিবন্ধ এটি সম্পর্কে কথা বলছে তবে jQuery ব্যবহার করে: এইচটিএমএল পাঠ্যবক্সগুলিতে সংখ্যার মানগুলিতে সীমাবদ্ধ করা হচ্ছে
document.getElementById('inputid').val()
বাবু .. যে এখনও jquery। .val()
একটি jquery জিনিস। ব্যবহার.value
decimal
মধ্যে 0.0
থেকে 24.0
আমি এটা ঢুকতে করতে পারছি না.
$(document).ready(function() {
$("#txtboxToFilter").keydown(function(event) {
// Allow only backspace and delete
if ( event.keyCode == 46 || event.keyCode == 8 ) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if (event.keyCode < 48 || event.keyCode > 57 ) {
event.preventDefault();
}
}
});
});
সূত্র: http://snipt.net/GerryEng/jquery-making-textfield-only-accept-numeric-values
আমি এটি আমাদের অভ্যন্তরীণ সাধারণ জেএস ফাইলগুলিতে ব্যবহার করি। আমি কেবল কোনও ইনপুটে ক্লাস যুক্ত করে যা এই আচরণের প্রয়োজন।
$(".numericOnly").keypress(function (e) {
if (String.fromCharCode(e.keyCode).match(/[^0-9]/g)) return false;
});
এত জটিল কেন? এমনকি আপনার জিক্যুরির প্রয়োজন নেই কারণ একটি HTML5 প্যাটার্ন বৈশিষ্ট্য রয়েছে:
<input type="text" pattern="[0-9]*">
দুর্দান্ত জিনিসটি এটি মোবাইল ডিভাইসে একটি সংখ্যাসূচক কীবোর্ড নিয়ে আসে যা jQuery ব্যবহারের চেয়ে আরও ভাল way
খুব সাধারণ সমাধানটি ব্যবহার করে আপনি এটি করতে পারেন
$("input.numbers").keypress(function(event) {
return /\d/.test(String.fromCharCode(event.keyCode));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="numbers" name="field_name" />
সমাধানের জন্য আমি এই লিঙ্কটি উল্লেখ করেছি । এটি পুরোপুরি কাজ করে !!!
decimal
মধ্যে 0.0
থেকে 24.0
আমি এটা ঢুকতে করতে পারছি না.
এইচটিএমএল 5 এর প্যাটার্ন বৈশিষ্ট্যটি একটি নিয়মিত অভিব্যক্তি নির্দিষ্ট করে যা উপাদানটির মানটির বিপরীতে পরীক্ষা করা হয়।
<input type="text" pattern="[0-9]{1,3}" value="" />
দ্রষ্টব্য: প্যাটার্ন বৈশিষ্ট্যটি নিম্নলিখিত ইনপুট ধরণের সাথে কাজ করে: পাঠ্য, অনুসন্ধান, url, টেল, ইমেল এবং পাসওয়ার্ড।
[0-9] কোনও নিয়মিত প্রকাশের শর্তের সাথে প্রতিস্থাপন করা যেতে পারে।
{1,3} এটি সর্বনিম্ন 1 টি উপস্থাপন করে এবং সর্বোচ্চ 3 ডিজিট প্রবেশ করা যায়।
decimal
মধ্যে 0.0
থেকে 24.0
আমি এটা ঢুকতে করতে পারছি না.
JQuery.uthorate ব্যবহার করে মোটামুটি সহজ কিছু
$(document).ready(function() {
$("#formID").validate({
rules: {
field_name: {
numericOnly:true
}
}
});
});
$.validator.addMethod('numericOnly', function (value) {
return /^[0-9]+$/.test(value);
}, 'Please only enter numeric values (0-9)');
ফাংশন দমননিম্বরিক ইনপুট (ইভেন্ট) {
if( !(event.keyCode == 8 // backspace
|| event.keyCode == 46 // delete
|| (event.keyCode >= 35 && event.keyCode <= 40) // arrow keys/home/end
|| (event.keyCode >= 48 && event.keyCode <= 57) // numbers on keyboard
|| (event.keyCode >= 96 && event.keyCode <= 105)) // number on keypad
) {
event.preventDefault(); // Prevent character input
}
}
decimal
মধ্যে 0.0
থেকে 24.0
আমি এটা ঢুকতে করতে পারছি না.
আমি একটি খুব ভাল এবং সহজ সমাধানে এসেছি যা ব্যবহারকারীর পাঠ্য নির্বাচন করা বা অন্যান্য সমাধানের মতো করে কপি পেস্ট করা বাধা দেয় না। jQuery শৈলী :)
$("input.inputPhone").keyup(function() {
var jThis=$(this);
var notNumber=new RegExp("[^0-9]","g");
var val=jThis.val();
//Math before replacing to prevent losing keyboard selection
if(val.match(notNumber))
{ jThis.val(val.replace(notNumber,"")); }
}).keyup(); //Trigger on page load to sanitize values set by server
আপনি এই জাভাস্ক্রিপ্ট ফাংশনটি ব্যবহার করতে পারেন:
function maskInput(e) {
//check if we have "e" or "window.event" and use them as "event"
//Firefox doesn't have window.event
var event = e || window.event
var key_code = event.keyCode;
var oElement = e ? e.target : window.event.srcElement;
if (!event.shiftKey && !event.ctrlKey && !event.altKey) {
if ((key_code > 47 && key_code < 58) ||
(key_code > 95 && key_code < 106)) {
if (key_code > 95)
key_code -= (95-47);
oElement.value = oElement.value;
} else if(key_code == 8) {
oElement.value = oElement.value;
} else if(key_code != 9) {
event.returnValue = false;
}
}
}
এবং আপনি এটির মতো আপনার পাঠ্যবাক্সে এটি আবদ্ধ করতে পারেন:
$(document).ready(function() {
$('#myTextbox').keydown(maskInput);
});
আমি উপরেরটিকে উত্পাদনে ব্যবহার করি এবং এটি পুরোপুরি কার্যকর হয় এবং এটি ক্রস ব্রাউজার। তদ্ব্যতীত, এটি jQuery উপর নির্ভর করে না, তাই আপনি এটিকে ইনলাইন জাভাস্ক্রিপ্টের সাহায্যে আপনার পাঠ্যবক্সে আবদ্ধ করতে পারেন:
<input type="text" name="aNumberField" onkeydown="javascript:maskInput()"/>
আমি মনে করি এটি সবাইকে সাহায্য করবে
$('input.valid-number').bind('keypress', function(e) {
return ( e.which!=8 && e.which!=0 && (e.which<48 || e.which>57)) ? false : true ;
})
if(event.which!=8 && event.which!=0 && (event.which<48 || event.which>57) && (event.which<96 || event.which>105)) return;
আমি উপরের @ ব্যবহারকারী 261922 এর পোস্টের ভিত্তিতে আমার লিখেছি, কিছুটা সংশোধন করা হয়েছে যাতে আপনি সমস্ত, ট্যাব নির্বাচন করতে পারেন এবং একই পৃষ্ঠায় একাধিক "কেবলমাত্র" ক্ষেত্রগুলি পরিচালনা করতে পারেন।
var prevKey = -1, prevControl = '';
$(document).ready(function () {
$(".OnlyNumbers").keydown(function (event) {
if (!(event.keyCode == 8 // backspace
|| event.keyCode == 9 // tab
|| event.keyCode == 17 // ctrl
|| event.keyCode == 46 // delete
|| (event.keyCode >= 35 && event.keyCode <= 40) // arrow keys/home/end
|| (event.keyCode >= 48 && event.keyCode <= 57) // numbers on keyboard
|| (event.keyCode >= 96 && event.keyCode <= 105) // number on keypad
|| (event.keyCode == 65 && prevKey == 17 && prevControl == event.currentTarget.id)) // ctrl + a, on same control
) {
event.preventDefault(); // Prevent character input
}
else {
prevKey = event.keyCode;
prevControl = event.currentTarget.id;
}
});
});
এখানে একটি দ্রুত সমাধান আমি কিছু সময় আগে তৈরি করেছি। আপনি আমার নিবন্ধে এটি সম্পর্কে আরও পড়তে পারেন:
http://ajax911.com/numbers-numeric-field-jquery/
$("#textfield").bind("keyup paste", function(){
setTimeout(jQuery.proxy(function() {
this.val(this.val().replace(/[^0-9]/g, ''));
}, $(this)), 0);
});
আপনি ট্যাবটি অনুমতি দিতে চান:
$("#txtboxToFilter").keydown(function(event) {
// Allow only backspace and delete
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 ) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
event.preventDefault();
}
}
});
এখানে একটি উত্তর যা jQuery UI উইজেট কারখানা ব্যবহার করে। কোন অক্ষরগুলি সহজেই অনুমোদিত তা আপনি কাস্টমাইজ করতে পারেন।
$('input').numberOnly({
valid: "0123456789+-.$,"
});
এটি সংখ্যা, সংখ্যা চিহ্ন এবং ডলারের পরিমাণের অনুমতি দেবে।
$.widget('themex.numberOnly', {
options: {
valid : "0123456789",
allow : [46,8,9,27,13,35,39],
ctrl : [65],
alt : [],
extra : []
},
_create: function() {
var self = this;
self.element.keypress(function(event){
if(self._codeInArray(event,self.options.allow) || self._codeInArray(event,self.options.extra))
{
return;
}
if(event.ctrlKey && self._codeInArray(event,self.options.ctrl))
{
return;
}
if(event.altKey && self._codeInArray(event,self.options.alt))
{
return;
}
if(!event.shiftKey && !event.altKey && !event.ctrlKey)
{
if(self.options.valid.indexOf(String.fromCharCode(event.keyCode)) != -1)
{
return;
}
}
event.preventDefault();
});
},
_codeInArray : function(event,codes) {
for(code in codes)
{
if(event.keyCode == codes[code])
{
return true;
}
}
return false;
}
});
এটি অবিচ্ছেদ্য বলে মনে হচ্ছে।
// Prevent NULL input and replace text.
$(document).on('change', 'input[type="number"]', function (event) {
this.value = this.value.replace(/[^0-9\.]+/g, '');
if (this.value < 1) this.value = 0;
});
// Block non-numeric chars.
$(document).on('keypress', 'input[type="number"]', function (event) {
return (((event.which > 47) && (event.which < 58)) || (event.which == 13));
});
আপনার কাছে সংখ্যার কীপ্যাড এবং ট্যাব কীটিও কাজ করছে তা নিশ্চিত করা দরকার
// Allow only backspace and delete
if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9) {
// let it happen, don't do anything
}
else {
// Ensure that it is a number and stop the keypress
if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105)) {
}
else {
event.preventDefault();
}
}
আমি কিছুটা সাহায্য করতে চেয়েছিলাম, এবং আমি আমার সংস্করণটি তৈরি করেছিলাম onlyNumbers
...
function onlyNumbers(e){
var keynum;
var keychar;
if(window.event){ //IE
keynum = e.keyCode;
}
if(e.which){ //Netscape/Firefox/Opera
keynum = e.which;
}
if((keynum == 8 || keynum == 9 || keynum == 46 || (keynum >= 35 && keynum <= 40) ||
(event.keyCode >= 96 && event.keyCode <= 105)))return true;
if(keynum == 110 || keynum == 190){
var checkdot=document.getElementById('price').value;
var i=0;
for(i=0;i<checkdot.length;i++){
if(checkdot[i]=='.')return false;
}
if(checkdot.length==0)document.getElementById('price').value='0';
return true;
}
keychar = String.fromCharCode(keynum);
return !isNaN(keychar);
}
কেবল ইনপুট ট্যাগে যুক্ত করুন "... ইনপুট ... আইডি =" দাম "অনকিডাউন =" রিটার্ন নাম্বার (ইভেন্ট) "..." এবং আপনার কাজ শেষ হয়েছে;)
আমি উত্তর দিতে চাই :)
$('.justNum').keydown(function(event){
var kc, num, rt = false;
kc = event.keyCode;
if(kc == 8 || ((kc > 47 && kc < 58) || (kc > 95 && kc < 106))) rt = true;
return rt;
})
.bind('blur', function(){
num = parseInt($(this).val());
num = isNaN(num) ? '' : num;
if(num && num < 0) num = num*-1;
$(this).val(num);
});
এটাই ... শুধু সংখ্যা :) প্রায়শই এটি 'অস্পষ্টতা' নিয়ে কাজ করতে পারে তবে ...
প্রবেশমূল্যের সংখ্যাটি হ'ল তা পরীক্ষা করার সহজ উপায় হ'ল:
var checknumber = $('#textbox_id').val();
if(jQuery.isNumeric(checknumber) == false){
alert('Please enter numeric value');
$('#special_price').focus();
return;
}
Jquery এ কেবল এই পদ্ধতিটি প্রয়োগ করা দরকার এবং আপনি কেবলমাত্র সংখ্যা গ্রহণ করতে আপনার পাঠ্যবক্সটি বৈধ করতে পারেন।
function IsNumberKeyWithoutDecimal(element) {
var value = $(element).val();
var regExp = "^\\d+$";
return value.match(regExp);
}
আপনি HTML5 নম্বর ইনপুট চেষ্টা করতে পারেন:
<input type="number" placeholder="enter the number" min="0" max="9">
এই ইনপুট ট্যাগ উপাদানটি এখন কেবল 0 থেকে 9 এর মধ্যে মান গ্রহণ করবে কারণ মিনিট অ্যাট্রিবিউট 0 তে সেট করা হয় এবং সর্বোচ্চ বৈশিষ্ট্য 9 এ সেট করা হয়।
দর্শন সম্পর্কে আরও তথ্যের জন্য http://www.w3schools.com/html/html_form_input_types.asp