Rya*_*yan 17 javascript validation asp.net-mvc knockout.js
我使用KnockoutJS,KnockoutJS Mapping插件和jQuery 1.7.1使用ASP.NET MVC 2构建了一个页面.我希望能够使用KnockoutJS Validation插件(可在此处找到).但是,我需要同时进行服务器和客户端验证.
是否可以将我的视图模型映射到使用.extend()方法的KnockoutJS Validation插件?
编辑:示例.自动转动:
[Required]
public string Firstname { get; set; }
Run Code Online (Sandbox Code Playgroud)
进入:
var viewmodel = {
firstname: ko.observable().extend({ required: true });
}
Run Code Online (Sandbox Code Playgroud)
在Mvc Controls Toolkit中,我实现了一个引擎,可以在knockout.js上启用通常的Mvc验证(数据注释或其他).可以启用客户端和服务器端验证.此外,淘汰赛可以与Mvc助手一起使用,一些绑定可以自动推断,等等.
如果您正在使用knockoutjs和jquery,我想出了以下非常简单的方法来进行基本的客户端验证.
无论您想在页面上显示错误消息的哪个位置,都要包含这样的span标记:
<span name="validationError" style="color:Red"
data-bind="visible: yourValidationFunction(FieldNameToValidate())">
* Required.
</span>
Run Code Online (Sandbox Code Playgroud)
显然你需要编写"yourValidationFunction"来做你想做的任何事情.它只需要返回true或false,true表示显示错误.
如果显示任何验证错误,您可以使用jquery来阻止用户继续.你可能已经有一个保存按钮,触发一个javascript函数来做一些ajax或其他什么,所以只需在它的顶部包含它:
if ($("[name='validationError']:visible").length > 0) {
alert('Please correct all errors before continuing.');
return;
}
Run Code Online (Sandbox Code Playgroud)
这比许多其他验证解决方案更简单,更灵活.您可以将错误消息放在任何位置,并且不需要学习如何使用某些验证库,并且无论服务器端技术如何,此方法都可以正常工作.
| 归档时间: |
|
| 查看次数: |
6186 次 |
| 最近记录: |