alireza_s_84
پنج شنبه 13 خرداد 1389, 14:37 عصر
سلام دوستان:
چند روز پیش کامپوننتی جهت اعتبارسنجی تاریخ شمسی توی این تاپیک (http://barnamenevis.org/forum/showthread.php?t=224799) قراردادم.
میخوام در اینجا در اینمورد صحبت کنیم که :
بهترین راه حل برای یک روش Cross-Browser مربوط به اعتبارسنجی در هنگامیکه خاصیت فیلد ما راست به چپ باشه چیه؟
شرح سناریو: برای کامپوننت خاصیتی بنام EnableRtlValidation یا RtlValidationMode رو برای کامپوننت قرار بدیم.
الف) خاصیت EnableRtlValidation از نوع بولین باشه و فقط دو مقدار بگیره در اینحالت تنها با مرورگر IE ما تاریخ 1387/12/23 رو میتونیم Validate کنیم. به عبارتی در همه ی مرورگرها اعداد انگلیسی نوشته میشه و تاریخ فوق در واقع 23/12/1387 خواهد بود چون خاصیت TRL برای TextBox ها عمل نمیکنه و اعداد همون انگلیسی نوشته میشن. البته اینمورد درسته چون تاریخ واقعیه ما در حالت فوق هم همینه ولی چون راست به چپ شده لذا به اون شکل کذایی دیده میشه. در اینحالت میتونیم با چک کردن نوع مرورگر(فقط IE) اعتبارسنجی کنیم.
ب) RtlValidationMode : یک نوع شمارشی باشه و سه Mode زیر رو بگیره:
Auto : بصورت خودکار با چک کردن نوع مرورگر اعتبارسنجی راست به چپ رو اعمال کنه یا نه.
OnlyIE: فقط اگر مرورگر IE باشه این خاصیت عمل کنه.
All: برای همه ی مرورگرها عمل کنه.
None: اصلا این خاصیت غیر فعال باشه و هر طور تاریخ وارد شده اعتبارسنجی کنه.
در حالت دوم ما گزینه های بیشتری داریم ولی به طبع کار پیچیده تری هم خواهیم داشت.
در حالت Auto همون کاری رو میکنیم که در سناریوی الف انجام دادیم. یعنی با توجه به نوع مرورگر تصمیم بگیریم.
OnlyIE که مشخصه فقط اگر مرورگر IE باشه این وضعیت رو قبول کنیم.
All: که مطمئنا در اینحالت مشکل سازه مگر اینکه کاری کنیم که مرورگرها هم مثل IE رفتار کنن که خب روشی به ذهن من نمیرسه.
None هم هر طور تاریخ وارد شد اعتبار سنجی کنیم که باز تقریبا همون حالت فوق رو داره.
حالا سوال اینجاست کدام از دو روش فوق پسندیده تره (یا اصلا چه روش بهتری وجود داره)؟
هر کدام از روشها مزایا و معایبی دارند لطفا در اینمورد بحث کنید.
چند روز پیش کامپوننتی جهت اعتبارسنجی تاریخ شمسی توی این تاپیک (http://barnamenevis.org/forum/showthread.php?t=224799) قراردادم.
میخوام در اینجا در اینمورد صحبت کنیم که :
بهترین راه حل برای یک روش Cross-Browser مربوط به اعتبارسنجی در هنگامیکه خاصیت فیلد ما راست به چپ باشه چیه؟
شرح سناریو: برای کامپوننت خاصیتی بنام EnableRtlValidation یا RtlValidationMode رو برای کامپوننت قرار بدیم.
الف) خاصیت EnableRtlValidation از نوع بولین باشه و فقط دو مقدار بگیره در اینحالت تنها با مرورگر IE ما تاریخ 1387/12/23 رو میتونیم Validate کنیم. به عبارتی در همه ی مرورگرها اعداد انگلیسی نوشته میشه و تاریخ فوق در واقع 23/12/1387 خواهد بود چون خاصیت TRL برای TextBox ها عمل نمیکنه و اعداد همون انگلیسی نوشته میشن. البته اینمورد درسته چون تاریخ واقعیه ما در حالت فوق هم همینه ولی چون راست به چپ شده لذا به اون شکل کذایی دیده میشه. در اینحالت میتونیم با چک کردن نوع مرورگر(فقط IE) اعتبارسنجی کنیم.
ب) RtlValidationMode : یک نوع شمارشی باشه و سه Mode زیر رو بگیره:
Auto : بصورت خودکار با چک کردن نوع مرورگر اعتبارسنجی راست به چپ رو اعمال کنه یا نه.
OnlyIE: فقط اگر مرورگر IE باشه این خاصیت عمل کنه.
All: برای همه ی مرورگرها عمل کنه.
None: اصلا این خاصیت غیر فعال باشه و هر طور تاریخ وارد شده اعتبارسنجی کنه.
در حالت دوم ما گزینه های بیشتری داریم ولی به طبع کار پیچیده تری هم خواهیم داشت.
در حالت Auto همون کاری رو میکنیم که در سناریوی الف انجام دادیم. یعنی با توجه به نوع مرورگر تصمیم بگیریم.
OnlyIE که مشخصه فقط اگر مرورگر IE باشه این وضعیت رو قبول کنیم.
All: که مطمئنا در اینحالت مشکل سازه مگر اینکه کاری کنیم که مرورگرها هم مثل IE رفتار کنن که خب روشی به ذهن من نمیرسه.
None هم هر طور تاریخ وارد شد اعتبار سنجی کنیم که باز تقریبا همون حالت فوق رو داره.
حالا سوال اینجاست کدام از دو روش فوق پسندیده تره (یا اصلا چه روش بهتری وجود داره)؟
هر کدام از روشها مزایا و معایبی دارند لطفا در اینمورد بحث کنید.