我有一个在服务器 sidie (.net mvc) 上执行的自定义验证检查。
如果失败,我想在输入框旁边用一条消息通知用户(jqueries 验证插件是如何开箱即用的)。
是否有内置函数(在验证插件中)我可以调用来执行此操作?
更新 理想的解决方案是使用插件本身,也许有一个方法调用我可以使用?
我有一个在服务器 sidie (.net mvc) 上执行的自定义验证检查。
如果失败,我想在输入框旁边用一条消息通知用户(jqueries 验证插件是如何开箱即用的)。
是否有内置函数(在验证插件中)我可以调用来执行此操作?
更新 理想的解决方案是使用插件本身,也许有一个方法调用我可以使用?
是的,有一个例子。
你基本上rules: {FIELD: {remote: "URL"}}
,然后在验证一个调用,URL?FIELD=value
并在你返回true
或服务器上false
。
有一个名为xVal的开源项目可以做到这一点。以下是项目主页的摘录:
项目描述 xVal 是一个用于 ASP.NET MVC 应用程序的验证框架。它使您可以轻松地将您选择的服务器端验证机制与您选择的客户端验证库链接起来,巧妙地适应 ASP.NET MVC 体系结构和约定。特征
使用模型属性的属性定义验证规则,例如,
[必需] [StringLength(50)] public string Name { get; 放; }
(或者,如果您愿意,您可以以编程方式提供规则,或者您可以在特定视图中硬编码它们)
- 旨在适应 ASP.NET MVC 约定,用于处理表单发布以及在 ModelState 中存储和检索错误信息
- 使用您选择的服务器端验证框架。开箱即用,xVal 允许您使用 .NET 3.5 的内置 DataAnnotations 类或 Castle Validator(或两者)。如果你想使用不同的东西,你可以通过实现 IRulesProvider 创建你自己的提供者。
- 使用您选择的客户端验证库。开箱即用,xVal 允许您使用 jQuery Validation 或 ASP.NET 的本机客户端验证库(又名 WebUIValidation.js,由 WebForms 使用)。或者,通过编写插件来使用任何其他客户端验证库,以使用 xVal 的标准 JSON 规则描述格式对其进行配置。
- 支持使用资源文件的本地化错误消息。根据当前线程的文化改变验证消息的语言。
- 通过继承现有规则或引用自定义 JavaScript 函数,添加在服务器和客户端上运行的自定义验证逻辑
您可以创建一个自定义验证函数并将其与 ajax 调用相结合。在这种情况下,ajax 调用将返回文本“true”或“false”。
var customFunction = function(value, element, param) {
var isValid = false;
$.ajax({
url: '/something',
data:{value: value},
success: function(data, textStatus) {isValid = data;},
dataType: 'json',
async: false
});
return isValid;
};
$.validator.addMethod("customFunction", customFunction, "That isn't valid.");
$('form').validate({
rules: {
fieldname: {
customFunction: true
}
}
});
编辑:实际上,请改用 svinto 提到的远程方法。我什至不知道它的存在。我是一个傻瓜。