اشتراکها
تفاوتی نمیکند که از کدامیک از HTML Editorها یا به عبارتی wysiwyg-editorهای موجود، جهت ورود اطلاعات استفاده میکنید. هیچکدام از آنها سبب فراخوانی اعتبارسنجی Required سمت کاربر نمیشوند. چرا؟
علت اینجا است که با فعال سازی wysiwyg-editorهای موجود، المان HTML پیش فرض مانند یک TextArea حالت مخفی پیدا میکند:
و اگر به سورس کد فایل jquery.validate.js مراجعه کنید، یک چنین تعریف پیش فرضی در آن موجود است:
به این معنا که در حین اعتبارسنجی سمت کاربر، از کلیه المانهای hidden بر روی صفحه صرفنظر خواهد شد.
برای رفع این مشکل کافی است بنویسیم:
در اینجا پیش فرضهای jQuery validator بازنویسی شده و در آن از textareaهای مخفی صرفنظر نمیشود.
اگر میخواهید کلا از چیزی صرفنظر نشود، مقدار آنرا به "" تنظیم کنید.
مشکل دوم! متد required پیش فرض، فقط به رشتههای خالی یا نال واکنش نشان میدهد. اما اگر کاربری در اینجا <p><br/></p> را وارد کرد، چطور؟
در این حالت نیاز است متد rqeuired پیش فرض jQuery validator را به نحو ذیل بازنویسی کنیم:
متد removeAllTagsAndTrim کلیه تگهای یک عبارت HTML ایی را حذف میکند. متد trim جیکوئری نیز سبب حذف فواصل خالی در ابتدا و انتهای یک رشته میشود. اکنون نیاز است این متد سفارشی را جهت تمیزسازی عبارت ورودی به متد توکار required اعمال کنیم.
برای اینکار نیاز است متد اصلی required را در جایی ذخیره کنیم تا در صورت شکست اعتبارسنجی سفارشی، همان متد اصلی فراخوانی گردد. در ادامه با فراخوانی jQuery.validator.addMethod و بکارگیری نام required، دقیقا همان متد اصلی required موجود بازنویسی خواهد شد. در ابتدای کار تگهای ورودی پاک شده و سپس اعتبارسنجی میشوند.
در ادامه فراخوانی متد اصلی required را ملاحظه میکنید. همچنین با استفاده از jQuery.validator.messages.required اصل پیام خطای تنظیم شده به کاربر نمایش داده خواهد شد.
علت اینجا است که با فعال سازی wysiwyg-editorهای موجود، المان HTML پیش فرض مانند یک TextArea حالت مخفی پیدا میکند:
و اگر به سورس کد فایل jquery.validate.js مراجعه کنید، یک چنین تعریف پیش فرضی در آن موجود است:
$.extend( $.validator, { defaults: { ignore: ":hidden",
برای رفع این مشکل کافی است بنویسیم:
jQuery.validator.setDefaults({ ignore: ":hidden:not(textarea)" });
اگر میخواهید کلا از چیزی صرفنظر نشود، مقدار آنرا به "" تنظیم کنید.
مشکل دوم! متد required پیش فرض، فقط به رشتههای خالی یا نال واکنش نشان میدهد. اما اگر کاربری در اینجا <p><br/></p> را وارد کرد، چطور؟
در این حالت نیاز است متد rqeuired پیش فرض jQuery validator را به نحو ذیل بازنویسی کنیم:
<script type="text/javascript"> // حذف تمام تگهای یک قطعه متن function removeAllTagsAndTrim(html) { return !html ? "" : jQuery.trim(html.replace(/(<([^>]+)>)/ig, "")); } // این تنظیم برای پردازش ادیتور مخفی وب لازم است jQuery.validator.setDefaults({ ignore: ":hidden:not(textarea)" }); // متد اصلی اعتبارسنجی را ابتدا ذخیره میکنیم jQuery.validator.methods.originalRequired = jQuery.validator.methods.required; // نحوه بازنویسی متد توکار اعتبار سنجی جهت استفاده از یک متد سفارشی jQuery.validator.addMethod("required", function (value, element, param) { value = removeAllTagsAndTrim(value); if (!value) { return false; } // فراخوانی متد اصلی اعتبار سنجی در صورت شکست تابع سفارشی return jQuery.validator.methods.originalRequired.call(this, value, element, param); }, jQuery.validator.messages.required); </script>
برای اینکار نیاز است متد اصلی required را در جایی ذخیره کنیم تا در صورت شکست اعتبارسنجی سفارشی، همان متد اصلی فراخوانی گردد. در ادامه با فراخوانی jQuery.validator.addMethod و بکارگیری نام required، دقیقا همان متد اصلی required موجود بازنویسی خواهد شد. در ابتدای کار تگهای ورودی پاک شده و سپس اعتبارسنجی میشوند.
در ادامه فراخوانی متد اصلی required را ملاحظه میکنید. همچنین با استفاده از jQuery.validator.messages.required اصل پیام خطای تنظیم شده به کاربر نمایش داده خواهد شد.
اشتراکها
1.1.7 froala/wysiwyg-editor منتشر شد
اشتراکها
کتابخانه ContentTools
اشتراکها
TypeScript 4.1 منتشر شد
For this release, we have some exciting new features, new checking flags, editor productivity updates, and speed improvements. Let’s get a look at what 4.1 brings!
نظرات مطالب
استفاده از ادیتور CKEditor در صفحات ASP.NET
اشتراکها
Notepad++ v8 منتشر شد
اشتراکها
Visual Studio Update 1 RTM منتشر شد
اشتراکها
CodeMaid v0.7.5 منتشر شد
اشتراکها
AvaloniaUI v11 منتشر شد
New Features
A11y (Accessibility)
IME (Input Method Editor) Support
Compositing Renderer
WebAssembly (WASM) Support
iOS and Android Support
Full Rich Text support
Smooth Virtualization (Reworked ItemsControl)
Performance Improvements
Control Themes, Nested Styles, and Theme Variants
Bitmap Effects
3D Transforms
AOT (Ahead-Of-Time) Compilation and Trimming
GPU Interop
Experimental Metal Support
IME (Input Method Editor) Support
Compositing Renderer
WebAssembly (WASM) Support
iOS and Android Support
Full Rich Text support
Smooth Virtualization (Reworked ItemsControl)
Performance Improvements
Control Themes, Nested Styles, and Theme Variants
Bitmap Effects
3D Transforms
AOT (Ahead-Of-Time) Compilation and Trimming
GPU Interop
Experimental Metal Support