Как вручную добавить проверку MVC на стороне клиента?

Я использую проверку jquery (ненавязчивую) для MVC, и у меня есть поле, которое не является частью моей модели, поэтому я бы предпочел не добавлять его ПРОСТО, чтобы дать ему некоторые аннотации данных.

И все, что мне нужно, это убедиться, что значение равно 100... Я бы хотел, чтобы это было проверено вместе со всем остальным.

Я прочитал эту статью: http://www.blinkingcaret.com/2016/03/23/manually-use-mvc-client-side-validation/

И я добавил

данные-вал = "истина"

А также

данные-val-равно = "100"

Но это не сработало.

<input type="text" name="smtotal" id="SMTotal" class="form-control " readonly="readonly" data-val="true"  data-val-equalto="100"/>
                        <span class="field-validation-valid" data-valmsg-for="smtotal" data-valmsg-replace="true">This must equal 100</span>

person Nathan Childers    schedule 21.12.2017    source источник


Ответы (1)


Есть несколько проблем. Во-первых, в data-val-equalto вы помещаете сообщение об ошибке, которое хотите отобразить, а не значение, с которым хотите сравнить. Также валидатор equalto сравнивает значение в другом поле, а не произвольное значение, такое как 100. Вам нужно будет указать имя другого поля в атрибуте data-val-equalto-other.

Чтобы сравнить с фиксированным значением, таким как 100, вы можете использовать валидатор диапазона и использовать одно и то же значение для минимума и максимума, например:

<input type="text" name="smtotal" id="SMTotal" class="form-control" readonly="readonly"
       data-val="true" data-val-range="This must equal 100"
       data-val-range-min="100" data-val-range-max="100" />
<span class="field-validation-valid" data-valmsg-for="smtotal"
      data-valmsg-replace="true"></span>

Обратите внимание, что я не предоставил сообщение в span, потому что сообщение исходит из input. Если вы хотите поместить сообщение в span, вам нужно установить data-valmsg-replace в false.

person Racil Hilan    schedule 21.12.2017
comment
Даааа, это помогло. Спасибо - ваш ответ был очень информативным. - person Nathan Childers; 21.12.2017