web-dev-qa-db-ja.com

knockout.jsフォームを検証していますか?

ASP.NET MVCプロジェクトでknockout.jsを使用しています。次のリンクの助けを借りて、フォームを表示し、JSONオブジェクトをシリアル化し、データを表示する方法を理解しました: ASP.NET MVC ViewModelsでknockout.jsを使用する方法

しかし、フォームを検証する方法を理解できません。フォームを検証するための最良のソリューションは何ですか?

27
Gayatri

私は彼のKnockout.Validationプラグイン( https://github.com/Knockout-Contrib/Knockout-Validation )を使用しましたが、うまく機能しました。 Knockoutでエクステンダーを使用するため、モデルのプロパティを拡張して、required、min、max、パターンマッチなどのルールを含めることができます。カスタムルールを作成することもできます。たとえば、URL用に作成しました。電子メールなどのルールも組み込まれています。これはすべて、ドキュメントのgithubページにあります。始めるために必要なものがすべて揃っています。

別のオプションは、jquery検証を使用することですが、これもうまく機能します。

36
John Papa

Knockout.Validationプラグインを試してください:

https://github.com/Knockout-Contrib/Knockout-Validation

4
daedalus28

答えは受け入れられますが、私のアプローチを共有したいと思います。私はjqueryをknockout.jsと組み合わせて jQuery Validation plugin を適用することを好みます。これは目立たないクライアント側フォーム検証に非常に適しています。フォームの送信前に機能し、フォームを入力パラメーターとして受け入れます。このようなもの:

    function ViewModel() {
       var self = this;
       self.firstName = ko.observable();
       self.lastName = ko.observable();
       self.email = ko.observable();
       self.validate = function(form) {
           return $(form).validate();
       };
    };
    var viewModel = new ViewModel();
    ko.applyBindings(viewModel);

Validate()関数が呼び出されます。検証が成功した場合はフォームが送信され、それ以外の場合はエラーが表示されます。

3