Исправьте ввод на стороне клиента с помощью RemoteValidation.

Есть ли возможность исправить ввод на стороне клиента с помощью удаленной проверки? Например, пользователь введет дату как 010101, что означает 01 января 2001 , может ли удаленная проверка отразить/передать исправленное значение (010101). > в 01 января 2001) на/на стороне клиента?

У меня есть сценарий, в котором у меня есть JS для форматирования ввода в правильный формат даты. Позже мне пришлось использовать RemoteValidation. Моя удаленная проверка получает дату в формате ddmmyy (RemoteValidation вызывается перед JS), она сначала преобразует ее в правильную дату, а затем выполняет проверку, а затем мой JS вообще не вызывается, и поэтому 010101 не преобразуется в 01-Jan-2001.

Изменить

Есть две вещи, в которых я хотел бы получить помощь

1- В любом случае функция удаленной проверки может изменить модель/данные, переданные ей для проверки, а затем передать ее обратно в представление, чтобы пользователь мог видеть измененную версию модели/данных.

[Удалено:2- У меня есть JavaScript для поля даты, которое форматирует дату при потере фокуса. Он работает нормально. Когда я использовал удаленную проверку вместе с JS, скрипт вообще не вызывался.]

Изменить

Модель

public class master
{
    public string sometext { get; set; }
    public child mychild { get; set; }
}   

public class child
{
    public child()
    {
        thedate = DateTime.MaxValue;
    }
    [Remote("ValidateDate", "Test", ErrorMessage = "Invalid Date")]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:mm/dd/yyyy}", NullDisplayText = "Enter Date")]
    public DateTime? thedate { get; set; }
}

Просмотреть

@model Models.master
@using Web.Framework

@{
    Layout = null;
    }

<html>
<head>
    <title>Test - My ASP.NET MVC Application</title>
        <script src="@Url.Scripts("jquery-1.7.1.min.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("jquery-ui-1.8.11.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("modernizr-2.0.6-development-only.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("AjaxLogin.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("jquery.validate.min.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("MicrosoftAjax.js")" type="text/javascript"></script>
        <script src="@Url.Scripts("MicrosoftMvcAjax.js")" type="text/javascript"></script>

        <script src="@Url.Scripts("myScripts.js")" type="text/javascript"></script>
</head>
<body>
@using (Html.BeginForm("testSubmit", "Test"))
{
    @Html.LabelFor(m => m.sometext)
    <br />
    @Html.TextBoxFor(m => m.sometext)
    <br />

    @Html.LabelFor(m => m.mychild.thedate)
    <br />
    @Html.TextBoxFor(m => m.mychild.thedate, new { onblur = "doDate(this, '');" })
    @Html.ValidationMessageFor(m => m.mychild.thedate)

        <br />
    <input type="submit" value = "Submit me" />   
}
</body></html>

Контроллер

public ActionResult testSubmit(master model)
{
    @ViewBag.Message = "OK";
    return View("response");
}

public JsonResult ValidateDate(DateTime? thedate)
{
    return Json(HttpContext.Request.QueryString["mychild.thedate"].ToString(), JsonRequestBehavior.AllowGet);
}

Мой удаленный валидатор всегда получает null в thedate, но я могу получить доступ к значению из строки запроса, но значение не отформатировано, т.е. удаленная проверка вызывается до JS, что означает, что я должен сначала отформатировать дату в удаленной функции, а затем проверить, после проверки, затем это ввод снова форматируется JS, и оба должны быть синхронизированы.

Теперь, как я могу получить отформатированное значение в удаленной функции ИЛИ передать отформатированное значение из удаленной функции в представление?


person bjan    schedule 06.04.2012    source источник
comment
@CrazyCoderz Вы спрашиваете о коде для преобразования даты?   -  person bjan    schedule 06.04.2012
comment
Пожалуйста, включите какой-нибудь код, который вы использовали, чтобы мы могли его посмотреть. Если вы дадите что-то посмотреть, то мы сможем быть в лучшей ситуации, чтобы дать вам правильный ответ. Чем более подробный код вы предоставите, тем лучше.   -  person Brendan Vogt    schedule 06.04.2012
comment
how can i get the formatted value in Remote function для этого я реализовал это решение, но теперь мой JS для форматирования даты вообще не вызывается   -  person bjan    schedule 09.04.2012


Ответы (1)


Поскольку я не получил никакого ответа, поэтому пока ответ «Нет».

person bjan    schedule 30.11.2012