Проверка правильности выбора минимума и максимума - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть форма, где мин и макс должны быть введены пользователем. Какова рекомендация для проверки для этого случая. Только проверка сервера или проверка клиента и сервера.

Как вы проверяете на клиенте оба входа? Знаете ли вы пример, который делает это?

UPDATE

Валидация, о которой я говорю, это валидация сравнения (все другие валидации, которые я знаю, как делать, в интернете много примеров). Однако я не нашел проверки клиента на наличие двух полей, связанных со сравнением.

В основном, как вы проводите проверку клиента в течение минимума, если он имеет значение меньше максимума, и проверку для максимума, что он имеет значение меньше мин. Или каковы рекомендуемые альтернативы этому.

НОВОЕ ОБНОВЛЕНИЕ

Кажется, первая фраза моего вопроса была потеряна. На форме у меня есть два поля ввода, скажем, FieldA и FieldB. FieldA должно быть меньше, чем FieldB, а FieldB должно быть больше, чем FieldA.

Мой вопрос касается: есть ли пример того, как проводить такую ​​проверку? Поскольку общим ответом является проверка на клиенте, тогда мой вопрос заключается в том, какую проверку я должен добавить к двум полям? Делать ли оба поля недействительными, когда условия не выполняются. Если да, то как мне снова сделать оба поля действительными после того, как пользователь изменил одно из полей.

1 Ответ

0 голосов
/ 04 сентября 2018

Оба.

Причина:

  • только проверка клиента: ваш сервер будет взломан.
  • только на стороне сервера: ваши пользователи будут раздражены, хотя это лучше, чем только на стороне клиента
  • оба: счастливые пользователи, не взломанные. Немного больше работы, хотя.

Что касается методов, существуют нагрузки, в зависимости от ваших настроек. Вы можете использовать DataAnnotations с атрибутами на стороне сервера для проверки, и есть множество jquery, angular, knockout и т. Д. Плагинов для проверки на стороне клиента. Javascript.


Дополнение: Как @ bradbury9 заявляет: проверка на стороне сервера "довольно простая"

Пример проверки jQueries можно найти здесь :

<script>
$(document).ready(function(){
    $("#commentForm").validate({
       rules: {
          name: "required",
          email: {
                   required: true,
                   email: true,
                 },
          comment: "required"
     }
});});
</script>

примечание : как указано выше: проверка на стороне клиента сильно зависит от используемой вами методики. Для AngularJs есть, например: эта библиотека.


обновление

По вашему запросу, для min max, также известного как проверка диапазона, пример с атрибутами (на стороне сервера):

//model
public class Foo
{
    [Range(1, 100)]
    [DataType(DataType.Currency)]
    public decimal Price { get; set; }
} 

И контроллер:

// POST: Movies/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create(Foo foo)
{
    if (!ModelState.IsValid)
    {
      //error
    }
}

И сторона javascript:

$( "#commentForm").validate({
  rules: {
    field: {
      required: true,
      range: [13, 23]
    }
  }
});

Подробнее см. source .

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