我一直在使用junckoutjs,quotoutjs映射插件和jQuery 1.7.1构建页面。我希望也能够使用QuintOutJS验证插件(找到 这里)。但是,我需要同时进行服务器和客户端验证。

是否可以将我的视图模型映射到 敲除验证插件 哪个使用.extend()方法?

编辑:示例。自动旋转以下方式:

[Required]
public string Firstname { get; set; }

在此中:

var viewmodel = {
    firstname: ko.observable().extend({ required: true });
}
有帮助吗?

解决方案

在里面 MVC控制工具包 我实施了一个引擎,可以在quoteut.jsout.jsot.both客户端和服务器端验证上启用通常的MVC验证(数据注释或其他)。此外,敲除可以与MVC助手一起使用,一些绑定是自动推断的,等等。

其他提示

如果您使用的是淘汰赛和jQuery,我想出了以下非常简单的方法来进行基本的客户端验证。

无论您想在页面上显示错误消息的何处,都包括这样的跨度标签:

<span name="validationError" style="color:Red" 
data-bind="visible: yourValidationFunction(FieldNameToValidate())">
* Required.
</span>

显然,您需要写“您的validationfunction”才能做任何您想做的事情。它只需要返回对还是错,true表示显示错误。

如果显示任何验证错误,您可以使用jQuery防止用户继续执行。您可能已经有了一个保存按钮,该按钮会触发JavaScript函数来执行一些Ajax或其他任何事情,因此只需在其顶部包含它:

 if ($("[name='validationError']:visible").length > 0) {
        alert('Please correct all errors before continuing.');
        return;
    }

这比那里的许多其他验证解决方案要简单得多,更灵活。您可以将错误消息定位在任何位置,也无需学习如何使用某些验证库,而该方法无无论服务器端技术如何工作。

我建议使用内置的MVC客户端验证,您可能需要调用它,请尝试以下操作:

$.validator.unobtrusive.parse(yourFormElement)

代码来自: https://stackoverflow.com/a/5669575/941536

不确定MVC2是否具有不引人注目的客户验证,不确定在必要时可以选择升级到MVC3。

验证插件以您扩展要验证的可观察到的方式工作。

它们是否是通过映射创建的,只需创建完成映射完成后运行的函数并添加所需的所有验证即可。

或者,如果您愿意,可以使用验证绑定。在Github上阅读README以进行敲除验证,您会看到他们如何做到。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top