اعتبارسنجی فیلدهای متنی برای حروف فارسی با استفاده از jQuery

همان گونه که می‌دانید، اعتبارسنجی عبارت‌های واردشده توسط کاربر باید در سمت سرور به انجام برسند، با این حال برای بهبود تجربه‌ی کاربری ممکن است بخواهیم اعتبارسنجی ورودی‌های کاربر را علاوه بر سمت سرور، در سمت مشتری نیز به انجام برسانیم.
در قطعه کد دنباله، روشی ساده برای اعتبارسنجی فیلدهای input از نوع text یا هر نوع متنی دیگر برای ورود حروف فارسی ارائه می‌شود:

$( 'body' ).on( 'keypress', 'input.persian', function( e ) {
	// backspace, delete, tab, escape, enter
	if ( $.inArray(e.keyCode, [ 46, 8, 9, 27, 13 ]) !== -1 ||
		 // Ctrl+A
		( ( e.charCode == 65 || e.charCode == 97 ) && e.ctrlKey === true ) || 
		 // home, end, left, right
		( e.keyCode >= 35 && e.keyCode <= 39 ) ) {
			 return;
	}
 
	if ( -1 == $.inArray( String.fromCharCode( e.charCode ), ['‌', ' ', 'آ','ا','ب','پ','ت','ث','ج','چ','ح','خ','د','ذ','ر','ز','ژ','س','ش','ص','ض','ط','ظ','ع','غ','ف','ق','ک','گ','ل','م','ن','و','ه','ی','ي','ك','ة'] ) ) {
		e.preventDefault();
	}
 
} );

برای استفاده از این قطعه کد، می‌بایست آن را در ابتدا یا انتهای فایل html خود فراخوانی کنید.
پس از فراخوانی این کد، تمامی inputهایی که صفت class آن‌ها مقدار persian را داشته باشد، به صورت خودکار ارزیابی می‌شوند.

<input class="persian" name="fname" type="text" />
<input class="persian" name="lname" type="text" />

این تابع به صورت delegate تعریف شده است. بنابراین تمامی فیلدهای متنی که پیش از اجرای دستور یا پس از آن ایجاد شوند، ارزیابی می‌شوند.
به علت تعریف این قطعه کد به صورت delegate، کارایی این روش بسیار بالا است و در تعداد زیاد input هم اثر اندکی روی کارایی سایت ایجاد خواهد کرد.

این نوشته در جاوااسکریپت, عمومی ارسال و , , , , برچسب شده است. افزودن پیوند یکتا به علاقه‌مندی‌ها.

۲ دیدگاه برای اعتبارسنجی فیلدهای متنی برای حروف فارسی با استفاده از jQuery

  1. برنامه نویس می‌گوید:

    عالی بود – دستتون درد نکنه

  2. عطیه می‌گوید:

    ممنون عالی بود

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>