Почему у меня есть 2 разных обязательных всплывающих окна проверки полей - PullRequest
0 голосов
/ 05 июля 2018

У меня есть 2 разные страницы, каждая с формой на них.

теперь на одной странице, если я оставляю обязательное поле пустым, я получаю следующие всплывающие окна проверки: enter image description here

Это код изображения выше:

<div class="form-group">
    <p class="control-label col-md-5"><i class="fa fa-exclamation-triangle triangle" aria-hidden="true"></i> <b>Voorletter(s)</b></p>
    <div class="col-md-4">
        @Html.EditorFor(model => model.Voorletters, new { htmlAttributes = new { @class = "form-control", required = "required", placeholder="K" } })
        @Html.ValidationMessageFor(model => model.Voorletters, "", new { @class = "text-danger" })
    </div>
</div>

но с другой я получаю всплывающее окно, которое, если вы спросите меня, имеет тот же код:

enter image description here

<div class="form-group">
    <p class="control-label col-md-5"><i class="fa fa-exclamation-triangle triangle" aria-hidden="true"></i> <b>Functie</b></p>
    <div class="col-md-4">
         @Html.EditorFor(model => model.Functie1, new { htmlAttributes = new { @class = "form-control", required = "required" } })
         @Html.ValidationMessageFor(model => model.Functie1, "", new { @class = "text-danger" })
    </div>
</div>

но я бы предпочел последний вариант, как мне всегда это получить?

Является ли последнее сообщение проверки стандартом Chrome?

EDIT:

ранее я пытался изменить первое сообщение проверки «Это поле обязательно для заполнения», создав метакласс, но это только изменило текст.

[MetadataType(typeof(medewerkerMetaData))]
public partial class medewerker
{
    public partial class medewerkerMetaData
    {
      //[Required(ErrorMessage = "Verplicht invullen!")]
        public string Voorletters { get; set; }

      // more code
    }
 }

1 Ответ

0 голосов
/ 05 июля 2018

Первый показывает ошибку проверки на стороне клиента mvc из вашего атрибута [Required]. Во-вторых, отображается сообщение проверки HTML-5 браузеров (из-за атрибута required), что означает, что вы не включили сценарии jquery.validate.js и jquery.validate.unobtrusive.js в это представление (или неправильно загружены, поскольку объявления не работают).

Когда вы используете сценарии проверки, он добавляет атрибут novalidate в вашу форму, так что проверка HTML-5 игнорируется (2 не работают вместе).

Несмотря на то, что вы думаете, вам не нужна проверка HTML-5 браузерами - это проверка только на стороне клиента (а не на стороне сервера, которая является наиболее важной) и не будет соответствовать атрибутам проверки на стороне сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...