Подтверждение поля принудительного отображения DataLayer - PullRequest
0 голосов
/ 29 мая 2019

В настоящее время у меня проверка поля работает, как и ожидалось, используя DataAnnotations , когда пользователь нажимает Создать учетную запись кнопка

Итак, что мне нужно сделать, это передать поля, которые не были выполнены при щелчке пользователя Создать учетную запись кнопку Validation Fields в проверить функцию ниже.

Таким образом, если какие-либо поля (Имя пользователя, Имя) не прошли проверку (т. Е. Имя пользователя или Имя), функция проверки заменит Validation Fields на любое поле с ошибкой. Например, если проверка не удалась для имени пользователя. поэтому «Поля проверки»: имя пользователя. Если оба поля не пройдены, тогда «Поля проверки»: Имя пользователя, Пароль.

Account.cs

[Required("Username is required")]
[StringLength(9, ErrorMessage="Must be under 9 characters")]
public string Username {get; set;}

[Required("Firstname is required")]
[StringLength(20, ErrorMessage="Must be under 20 characters")]
public string Firstname {get; set;}

Account.cshtml

@using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @id = "form-main" }))

            @Html.ValidationSummary(true, "", new { @class = "styled" })

             <div class="form-group">
                    @Html.LabelFor(model => model.Username)
                    @Html.TextBoxFor(model => model.Username, new { @class = "form-control", @placeholder = "Please enter here" })
                    @Html.ValidationMessageFor(model => model.Username, "", new { @class = "styled" })

                </div>

            <div class="form-group">
                    @Html.LabelFor(model => model.FirstName)
                    @Html.TextBoxFor(model => model.FirstName, new { @class = "form-control", @placeholder = "Please enter here" })
                    @Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "styled" })

                </div>
            <button id="btnCreateAccount" type="submit" onclick="onCreateAccount()">Create Account</button>
        }



@section Scripts {
        <script type="text/javascript">
        function Validate() {
                window.dataLayer = window.dataLayer || [];
                window.dataLayer.push({
                    'event': 'Submit',
                    'Status': 'Fail',
                    'Label': 'Account Register form',
                    'Validation Fields': 'failed field validation' 
                });
            }

        function onCreateAccount()
        {
            Validate()
        }
        </script>   

}

Так как же достичь сценария, описанного выше, где я могу получить поля, которые не проходят проверку, а затем передать их в 'Поле проверки' в Проверка функция?

...