asp.net 中的 jQuery 表单验证:报告弃用输入的警告消息,同时保留错误输入的错误

问题描述

在我们的(旧)ASP.NET MVC 5 应用程序中,我们在用户 GUI 中有许多表单。

用户可以链接他们在文本框中输入的图像和网站。 ASP.NET MVC 使用 jQuery 表单验证器来验证输入并将错误输入作为错误消息报告给用户,使表单无效,因此不会被 post 接受。

我们不想强迫我们的用户(还)在 URI 中使用安全链接,即“https”,但我们确实想警告他们。但是,jQuery 表单验证器似乎没有这个选项。要么是“有效”要么是“错误”。

为了说明我的情况,我有一些截图:

这是当前有效的输入:没有错误或警告:

enter image description here

这是当前无效的输入错误(请原谅我的荷兰语):

enter image description here

这是我想查看用户是否输入“http:”的警告:

enter image description here

注意,警告不是错误,所以表单仍然可以这样提交。

目前我们使用

将 URL 文本框验证添加到输入字段
<input ... data-val-regex="Vul een geldige button url in" data-val-regex-pattern="(^$)|(^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-zA-Z\u00a1-\uffff0-9]-*)*[a-zA-Z\u00a1-\uffff0-9]+)(?:\.(?:[a-zA-Z\u00a1-\uffff0-9]-*)*[a-zA-Z\u00a1-\uffff0-9]+)*(?:\.(?:[a-zA-Z\u00a1-\uffff]{2,}))\.?)(?::\d{2,5})?(?:[/?#]\S*)?$)" ...>

有没有办法使用 jquery 表单验证器来实现这一点?

我尝试编写自己的 jQuery 解决方案

$("[data-val-regex-pattern*='https?']")
.keyup(function() {
    if ($(this).val().startsWith("http:")) {
        $(this).parents(".form-group")
               .addClass("has-warning");
        $(this).siblings("span")
               .addClass("field-validation-warning")
               .html('Warning: "http:" is deprecated,use "https".');
    } else {
        $(this).parents(".form-group")
               .removeClass("has-warning");
        $(this).siblings("span")
               .removeClass("field-validation-warning")
               .html("");
    }
});

这不能正常工作,因为 jquery 表单验证器不断覆盖 html 消息。

有人知道更好的解决方案吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...