验证选择最小值和最大值

问题描述 投票:-2回答:1

我有一个表格,用户必须输入最小值和最大值。对此案例进行验证的建议是什么?仅服务器验证或客户端和服务器验证。

您如何在客户端验证两个输入?你知道这样做的一个例子吗?

UPDATE

我正在谈论的验证是比较验证(我知道如何做的所有其他验证,互联网上有很多例子)。但是我没有找到客户端验证,因为有两个与compare相关的字段。

基本上,如何对min进行客户端验证,使其值小于max,对max进行验证,使其值小于min。或者建议的替代方案是什么。

新的更新

似乎我的问题的第一句话已经丢失了。在表单上我有两个输入字段,比如说FieldA和FieldB。 FieldA必须小于FieldB,而FieldB必须大于FieldA。

我的问题涉及:是否有关于如何进行此类验证的示例。由于常见的响应是在客户端上进行验证,那么我的问题是我应该在两个字段中添加哪些验证?如果不满足条件,是否使两个字段无效。如果是,那么在用户更改其中一个字段后,如何使两个字段再次有效。

c# asp.net-core
1个回答
4
投票

都。

原因:

  • 仅限客户端验证:您的服务器将被黑客入侵。
  • 仅限服务器端:虽然它比客户端更好,但您的用户会感到恼火
  • 两者:快乐的用户,而不是黑客。虽然做了一点点工作。

至于技术,有负载,取决于您的设置。你可以使用DataAnnotations验证属性服务器端,并有大量的jqueryangularknockout等客户端javascript验证插件。


Addition: As @bradbury9 states: server side validation "fairly easy"

可以找到jQuery的验证示例here

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

注意:如前所述:客户端验证高度依赖于您使用的技术。对于AngularJs,例如:this库。


update

根据您的要求,最小最大值,也就是范围验证,一个带属性的示例(服务器端):

//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

© www.soinside.com 2019 - 2024. All rights reserved.