Удалите сообщения проверки данных с помощью скрипта jQuery.Сценарий JQuery не выполняется - PullRequest
0 голосов
/ 05 октября 2018

Я новичок в C # asp.net MVC.Я пытаюсь избавиться от ошибок проверки данных в моей форме.Когда пользователь нажимает кнопку сброса, все данные и сообщения об ошибках должны быть удалены с веб-страницы.Элементы входных данных удаляются успешно, но сообщения об ошибках проверки остаются.Когда пользователь нажимает кнопку сброса, вся веб-страница должна быть очищена.Это не происходитПоэтому я пытаюсь использовать функцию jQuery для удаления сообщений проверки;однако это не выполняется.Когда я устанавливаю точку останова в скрипте JQuery и отлаживаю программу, отладчик никогда не достигает этой точки останова.

Теперь я мог бы просто повторно отправить страницу, а не пытаться устранить ошибки.Это тоже приемлемое решение.C # должен просто перенаправить / переслать пустую страницу по умолчанию.Я тоже не уверен, как это сделать.

Я поместил скрипт JQuery в начало файла cshtml моего представления, заключенного в теги.Я также включил тег выше фактической функции в том же файле cshtml.Когда я отлаживаю скрипт, код никогда не попадает туда.

Я подозреваю, что у меня скрипт jQuery не в том месте, так как я не уверен, где скрипты JQuery должны находиться в схеме вещей.

Я запускаю скрипт, когда нажимаю кнопку сброса со следующим утверждением:

У меня есть связанные методы GET и контроллера Post

Вот код.Это все в одном и том же виде cshtml файла.

I am new to C# asp.net MVC.  I have placed a JQuery script at the top of my view’s cshtml file enclosed in <script></script> tags. I have also included the <script src="~/Scripts/jquery-3.3.1.js"></script> tag above the actual function in the same cshtml file.   When I debug the script, the code never gets there.
I kick off the script when I press the reset button with the following statement:
<input onclick="$(this).resetValidation()" type="reset" value="Reset" />

I have associated GET and a Post controller methods

Here’s the code.  It is all in the same view cshtml file.

    @{
    ViewBag.Title = "Calculator";
}

<script src="~/Scripts/jquery-3.3.1.js"></script>
<script>
    // taken from: /6564788/sbros-formy-mvc-s-pomoschy-jquery */
    (function ($) {

        //re-set all client validation given a jQuery selected form or child
        $.fn.resetValidation = function () {

            var $form = this.closest('form');

            //reset jQuery Validate's internals
            $form.validate().resetForm();

            //reset unobtrusive validation summary, if it exists
            $form.find("[data-valmsg-summary=true]")
                .removeClass("validation-summary-errors")
                .addClass("validation-summary-valid")
                .find("ul").empty();

            //reset unobtrusive field level, if it exists
            $form.find("[data-valmsg-replace]")
                .removeClass("field-validation-error")
                .addClass("field-validation-valid")
                .empty();

            return $form;
        };
    })(jQuery);
</script>

<br /><br /<br />
<div class="col-md-4 col-md-7">
    <div class="panel panel-primary">
        <div class="panel-heading">Engulf and Devour E&D</div>
        <div class="panel-body">
            @ViewBag.Info
            @using (Html.BeginForm("Calculator", "Investment", "post"))
            {
                <legend> Investment Calculator </legend>
                <p>@Html.Label("Principal", "Principal", new { id = "lblPrincipal" })</p>
                <p>@Html.Editor("principal") @Html.ValidationMessage("principal")</p>
                <p>@Html.Label("Interest", "Interest", new { id = "lblInterest" })</p>
                <p>@Html.Editor("interest") @Html.ValidationMessage("interest")</p>
                <p>@Html.Label("Years", "Years", new { id = "lblYears" })</p>
                <p>@Html.Editor("years") @Html.ValidationMessage("years")</p>
                <p>@Html.Label("CmpPerYr", "CmpPerYr", new { id = "lblCmpPerYr" }) </p>
                <p>@Html.Editor("cmpPerYr") @Html.ValidationMessage("cmpPerYr")</p>
                <div> <br /></div>
                <button type="submit">Calculate</button>
                <input type="reset" value="Clear" />
                <input onclick="$(this).resetValidation()" type="reset" value="Reset" />
            }
        </div>
    </div>
</div>
...