همان گونه که می‌دانید، اعتبارسنجی عبارت‌های واردشده توسط کاربر باید در سمت سرور به انجام برسند، با این حال برای بهبود تجربه‌ی کاربری ممکن است بخواهیم اعتبارسنجی ورودی‌های کاربر را علاوه بر سمت سرور، در سمت مشتری نیز به انجام برسانیم.
در قطعه کد دنباله، روشی ساده برای اعتبارسنجی فیلدهای 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»

دیدگاهتان را بنویسید

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