验证没有模型的文本框

时间:2015-07-21 13:28:29

标签: jquery asp.net-mvc

我有一个带有文本框和提交按钮的表单,当用户向文本框添加值并提交时,它将更新用于存储一些简单配置的XML文件。

@using (Html.BeginForm("SetThreshold", "Config", FormMethod.Post))
{  
    <p>Current Email Threshold @Html.Raw(threshold)</p>

    @Html.TextBox("emailThreshold", null, new { @class = "numericTextBox" })

    <input type="submit" value="Update" />
}

由于我没有使用模型,因此我无法使用数据注释来确保用户在尝试提交之前输入数字内容。

我真的不想渲染一些警告文本,然后在点击提交按钮时根据表单状态显示/隐藏它。

验证文本框客户端的最简洁最简单的方法是什么,同时保持我在基于模型的视图上使用的所有其他JQUERY验证,并且能够在以后添加到我无疑有更多文本框时可在此页面上更新。

1 个答案:

答案 0 :(得分:2)

jQuery标准验证库允许您使用属性装饰输入,并在提交表单时自动验证。

例如,如果您使用required属性渲染文本框,它将起作用。但是,它只会执行client-side验证;在C#模型中使用验证属性也可以启用server-side验证。

所以,类似的东西会奏效:

@Html.TextBox("emailThreshold", null, new { required = "required" })

如果您需要了解所有验证属性,请查看jquery验证插件主页。

说实话,还有其他选择,例如,您可以创建自定义模型绑定器并覆盖验证提供程序。但我认为这就像重新发明轮子......太费力了......

编辑:

让我分享一下与自定义验证相关的好文章:

http://johnnycode.com/2014/03/27/using-jquery-validate-plugin-html5-data-attribute-rules/