在文本框上手动设置不显眼的验证错误
我正在做类似于远程验证的事情,除了我已经通过 jquery 手动进行调用并设置我必须设置的任何内容。
现在我的问题是,如果我想告诉验证器特定的文本框无效(并阻止页面提交,突出显示文本框等)。我将如何从代码中做到这一点?
@Html.LabelFor(m => Model.Slug)
@Html.TextBoxFor(m => Model.Slug)
<span id="UrlMsg" class="field-validation-error" style="display: none;"></span>
if (error) {
$('#UrlMsg').html('This name is already in use.').fadeIn('fast');
//what should I do here for the rest of the validation?
}
I'm doing something similar to the remote validation, except that I already make my calls manually via jquery and setup whatever I had to setup.
Now my problem is, if I want to tell the validator that a particular textbox is not valid (and prevents the page from submitting, highlight the textbox, etc). How would I do this from code?
@Html.LabelFor(m => Model.Slug)
@Html.TextBoxFor(m => Model.Slug)
<span id="UrlMsg" class="field-validation-error" style="display: none;"></span>
if (error) {
$('#UrlMsg').html('This name is already in use.').fadeIn('fast');
//what should I do here for the rest of the validation?
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
首先,您可以添加验证摘要:
然后您可以使用 .showError 方法手动触发 jQuery 验证/非侵入式验证。这是一个示例:
First, you can add a validation summary:
Then you can manually trigger jQuery validation / unobtrusive validation with the .showError method. Here is a sample:
您还可以执行以下操作:
在代码中使用此函数:
然后可以设置错误
You can also do:
With this function in your code:
Then can set the error
使用 showErrors 不允许错误持续存在,因此运行 .valid() 会清除错误。相反,我添加了“forcibleerror”规则和 javascript 方法来设置消息。
用法:
将其恢复到有效状态:
Using showErrors did not allow the error to persist, so that running .valid() cleared the error. Instead, I added a "forcibleerror" rule and a javascript method to set the message.
Usage:
To put it back in a valid state:
在我看来,接受的答案有两个使其毫无用处的大问题:
kevinpo 的答案解决了这两个问题,如果您需要动态生成,可能应该使用它。 > 错误消息。但静态错误消息通常已经足够好了,所以...
让我们通过不引人注目的验证使这变得非常简单。
将其添加到站点范围的 javascript 文件中:
将其添加到 HTML 中的相关输入元素。第一个属性
data-val-ok
告诉非侵入性验证为此输入激活这种类型的验证,并告诉它在无效时显示什么错误消息。第二个属性data-ok
将初始状态设置为有效。在页面的 Javascript 中调用此代码可将输入设置为无效、显示错误和相关格式并阻止页面提交。
调用此命令将其更改回有效状态,隐藏错误和相关格式,并允许页面提交:
The accepted answer has two big problems that make it useless, in my opinion:
kevinpo's answer addresses both of these problems and is probably what you should use if you need dynamically-generated error messages. But static error messages are usually good enough, so...
Let's make this really simple this with unobtrusive validation.
Add this to your site-wide javascript file:
Add this to the relevant input element in your HTML. The first attribute,
data-val-ok
, tells unobtrusive validation to activate this type of validation for this input and tells it what error message to show when it is invalid. The second attribute,data-ok
, sets the initial state to valid.Call this code in your page's Javascript to set the input to invalid, display the error and related formatting, and block page submission.
Call this to change it back to valid, hide the error and related formatting, and permit page submission:
这是对 FRL 答案的改进:
JS Function
Call it like this:
This is an improvement on FRL's answer:
JS Function
Call it like this: