PDA

View Full Version : model validation با jquery



mehdin69
دوشنبه 29 اردیبهشت 1393, 23:02 عصر
سلام
چطوری میشه با script نویسی validation هایی که توی lng در قسمت annotation ها وارد کردیم رو بدون اینکه دکمه ثبت رو بنیم چک کنیم؟
کلاً چطوری میشه به محض خروج از Textbox بیاییم validation هایی که توی model اعمال شدن رو اعمال کنیم و message های اونها رو نمایش بدیم؟

rezaei_y
سه شنبه 30 اردیبهشت 1393, 11:14 صبح
@Html.TextBoxFor(x => x.Email, new { placeholder = "", @class = "", @style = "" })
@Html.ValidationMessageFor(x => x.Email)



و در وب کانفیگ در appSettings تگ های زیر رو وارد کنید


<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />


همچنین فایل های جی کوئری و jquery.unobtrusive-ajax.js به صفحه ات اضافه میکنی

mehdin69
سه شنبه 30 اردیبهشت 1393, 13:06 عصر
چوت از Devexpress توی شرایط خاصی دارم استفاده میکنم امکتن استفاده از TextBoxFor ندارم فقط می تونم نهایتش بگم


@Html.DevExpress().TextBox(setting =>
{
setting.Name = "UnitPrice";
setting.Width = System.Web.UI.WebControls.Unit.Percentage(100);
}).Bind(DataBinder.Eval(Model.DataItem, "UnitPrice")).GetHtml()



راه حل؟؟؟؟

rezaei_y
سه شنبه 30 اردیبهشت 1393, 14:00 عصر
@Html.DevExpress().TextBox(
settings => {
settings.Name = "FirstName";
settings.ShowModelErrors = true;
settings.Properties.ValidationSettings.ErrorDispla yMode = ErrorDisplayMode.ImageWithText;
}).Bind(Model.FirstName).GetHtml()

mehdin69
سه شنبه 30 اردیبهشت 1393, 14:36 عصر
مرسی بابت وقتی که میزارید...
نمیشه
من یه فرم popup دارم که Textbox ها و button روی اون قرار داره وقتی دکمه button رو میزنم بجای اینکه بیاد Validate کنه میاد همه صفحه رو postback میکنه و validate انجام نمیشه
و پنجره popup بسته میشه میره
منظورم و اگه خوب نرسندم بگید

mehdin69
سه شنبه 30 اردیبهشت 1393, 15:04 عصر
حتی اومدم اینطوری کار کردم اما بازم جواب نمیده :(
توی فرم اصلی اینو صدا زدم


<script type="text/javascript">
function OnLostFocus(s, e) {
Submit.DoClick();
}
</script>

و این


@Html.Partial("EditrControl/ProductName")

و توی ProductName.cshtml اینطوری نوشتم




@Html.DevExpress().TextBox(setting =>
{
setting.Name = "ProductName";
setting.ControlStyle.CssClass = "editor";
setting.Properties.EnableClientSideAPI = true;
setting.ShowModelErrors = true;
setting.Properties.ClientSideEvents.LostFocus = "function(s, e) { OnLostFocus(s, e) }";
setting.Properties.ValidationSettings.ErrorDisplay Mode = ErrorDisplayMode.ImageWithTooltip;
setting.Properties.ValidationSettings.ErrorTextPos ition = ErrorTextPosition.Right;
setting.Width = System.Web.UI.WebControls.Unit.Percentage(100);
}).Bind(DataBinder.Eval(Model.DataItem, "ProductName")).GetHtml()


ولی کاری نمیکنه