PDA

View Full Version : Validator کردن دوتا textbox در صورت خالی نبودن یکی از آنها



ramin149
چهارشنبه 28 فروردین 1392, 12:05 عصر
با سلام من دو تا textbox در صفحه قرار دادم که یکی از آنها تاریخ فروش و دیگری تاریخ انقضاء . اما نمی دانم چه Validator بنویسم که اگر تاریخ فروش دارای اطلاعاتی باشه برای تاریخ انقضاء هم حتما کاربر اطلاعاتی وارد کند . ؟؟؟


[StringLength(50, ErrorMessage = "تاریخ فروش بلیت بیشتر از 50 کاراکتر است")]
[DataType(DataType.Date, ErrorMessage = "تاریخ فروش بلیت نامعتبر است !")]
public string DateSale { get; set; }

[StringLength(50, ErrorMessage = "تاریخ انقضا بلیت بیشتر از 50 کاراکتر است")]
[DataType(DataType.Date, ErrorMessage = "تاریخ انقضا بلیت نامعتبر است !")]
public string dateExpire { get; set; }

Sirwan Afifi
چهارشنبه 28 فروردین 1392, 20:27 عصر
اگه منظورتون وادار کردن کاربر به ورود داده داخل TextBoxه می تونید از خصوصیت Required استفاده کنید :
[StringLength(50, ErrorMessage = "تاریخ انقضا بلیت بیشتر از 50 کاراکتر است")]
[DataType(DataType.Date, ErrorMessage = "تاریخ انقضا بلیت نامعتبر است !")]
[Required]
public string dateExpire { get; set; }

ramin149
پنج شنبه 29 فروردین 1392, 09:05 صبح
دوست عزیر کد شما برای وارد کردن اطلاعات درسته .
اما منظور مناین نیست . من دو تا textbox دارم در حالت پیش فرض موارد کردن اطلاعات اجباری نیست اما اگر روی textbox اولی متنی وارد شود باید و حتما روی textbox دوم هم متنی وارد شود . حالا این مشکل را به چه روشی باید حل کرد ؟؟؟

mo.esmp
شنبه 31 فروردین 1392, 00:24 صبح
به این نوع اعتبار سنجی Conditional Validation گفته میشه که اگه یه جستجو تو گوگل برای Conditional Validation with ASP.NET MVC بزنی قزیه رو کامل میگیری. برای اینکار میتونی از کتابخانه کمکی به نام MVC Foolproof Validation (http://foolproof.codeplex.com/) استفاده کنی کی یک RequiredIf کە کارت رو راه میندازه.
[RequiredIf("DateSale")]
[GreaterThan("DateSale")]
public DateTime dateExpire { get; set; }

ramin149
دوشنبه 02 اردیبهشت 1392, 15:21 عصر
دوست عزیز RequiredIf دو تا ورودی دارد .
من dll را MVC Foolproof Validatio (http://foolproof.codeplex.com/) دانلود کردم و در پروژه ام قرار دادم ، و validator مورد نظرم را به صورت زیر نوشتم . اما هیچ پیغامی نشان نمیدهد .مشکل از کجاست . (فقط dll را دانلود کردم .)

[StringLength(50, ErrorMessage = "تاریخ فروش بلیت بیشتر از 50 کاراکتر است")]
[DataType(DataType.Date, ErrorMessage = "تاریخ فروش بلیت نامعتبر است !")]
public string DateSale { get; set; }

[RequiredIfNotEmpty("DateSale", ErrorMessage = "تاریخ انقضا وارد نمایید .")]
[StringLength(50, ErrorMessage = "تاریخ انقضا بلیت بیشتر از 50 کاراکتر است")]
[DataType(DataType.Date, ErrorMessage = "تاریخ انقضا بلیت نامعتبر است !")]
public string dateExpire { get; set; }

mo.esmp
دوشنبه 02 اردیبهشت 1392, 16:23 عصر
دوست خوبم اینتوری اعتبارسنجی فقت سمت سرور انجام میگیره. برای نمایش در سمت کاربر باید فایلهای جاوااسکریتپش رو هم بزاری. به سفحەش برو و Client Validation رو هم بخون.

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/mvcfoolproof.unobtrusive.js")" type="text/javascript"></script>

lordesiah
سه شنبه 03 اردیبهشت 1392, 02:21 صبح
[StringLength(50, ErrorMessage = "تاریخ فروش بلیت بیشتر از 50 کاراکتر است")]
[DataType(DataType.Date, ErrorMessage = "تاریخ فروش بلیت نامعتبر است !")]
public string DateSale { get; set; }

[StringLength(50, ErrorMessage = "تاریخ انقضا بلیت بیشتر از 50 کاراکتر است")]
[DataType(DataType.Date, ErrorMessage = "تاریخ انقضا بلیت نامعتبر است !")]
[System.Web.Mvc.Remote(action: "CheckValid", controller: "Home", AdditionalFields = "DateSale", HttpMethod = "POST", ErrorMessage = "ur msg")]
public string dateExpire { get; set; }

بعد توی کنترلر home یه اکشن متد بنام checkvalid درست کن که اینجوری باشه : //

[HttpPost]
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
public Actionresult CheckValid(strint dateSale , string dateExpire)
}
if( (dateSale!=null&& dateExpire==null)||(dateSale==null&&dateExpire!=null)
}

return Json(false);
{

return Json(true);
{
من اینو پیشنهاد میکنم ببین به دردت میخوره :) //

ramin149
سه شنبه 03 اردیبهشت 1392, 09:07 صبح
دوست عزیز روش شما را مطالعه کردم . اما به نظر من روش قبلی خیلی راحت تر و سریع تر می شه کد نویسی گرد. ممنون که جواب سوالم را دادید .

lordesiah
پنج شنبه 05 اردیبهشت 1392, 10:11 صبح
دوست خوبم اینتوری اعتبارسنجی فقت سمت سرور انجام میگیره. برای نمایش در سمت کاربر باید فایلهای جاوااسکریتپش رو هم بزاری. به سفحەش برو و Client Validation رو هم بخون.

<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/mvcfoolproof.unobtrusive.js")" type="text/javascript"></script>


فایلهای js حتما همیناس؟؟
من دانلود کردم mvcfoolproof.unobtrusive.min.js داره و وقتی run میکنم خطا میده (کدهامو نوشتم )

ramin149
شنبه 07 اردیبهشت 1392, 09:15 صبح
در لینک زیر هم فایل dll است و هم js
http://foolproof.codeplex.com/releases/view/43468

lordesiah
شنبه 07 اردیبهشت 1392, 10:52 صبح
اینو دانلود کرده بودم ولی ج نداد
مرسی