問題タブ [knockout-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
4291 参照

javascript - ノックアウトおよびノックアウト検証でラジオボタンを検証すると、期待される CSS クラスが適用されない

私はラジオボタンのセットを2つ持っているフォームを持っています。各セットで、ユーザーは 1 つを選択する必要があります (ユーザーがどちらかを選択することを「考える」必要があるため、デフォルトでは 1 つを選択しません)。

ノックアウト 2.2.0 とKnockout Validationの最新バージョンを使用しています。ラジオ ボタンに問題があります。検証では、ラジオ ボタンが選択されていないと正しく判断されますが、ラジオ ボタンに css クラスが与えられません。cssをラジオボタン入力に適用するための検証を取得するにはどうすればよいですか?

理想的には、ラジオ入力が選択されていないと判断した後、グループ内の両方のラジオ ボタンに「invalidElement」の css クラスを適用したいと考えています。

*注意: 「invalidElement」の css クラスを、ラジオ ボタン入力を除く他のすべての入力に適用します。また、ラジオ ボタンの入力が選択されていない場合にそれらを強調表示するカスタムの作成も検討しましたが、これを行うには Knockout に慣れていません。

バインディング付きの HTML...

0 投票する
1 に答える
161 参照

javascript - coffeescript のノックアウト検証ライブラリ

ノックアウト検証プラグイン ( https://github.com/ericmbarnard/Knockout-Validation ) を coffeescriptに変換することに成功した人がいるかどうか疑問に思っていました。

http://js2coffee.org/のようなツールを使用して試してみましたが、これまでのところ、コーヒーで動作するバージョンを取得できませんでした。

それが使用されているプロジェクトはすべてcoffeescriptで書かれているので、カスタム検証ルールを書くことになると、チームはJavaScriptではなくコーヒーで書きたいと思っています。これまでのところ、カスタム ルールはノックアウト検証 JavaScript ファイルに追加されたばかりです。

0 投票する
2 に答える
9384 参照

knockout.js - ノックアウト マッピングの検証

マッピングされたビューに検証を添付しようとしています。Knockout Mapping および Validation プラグインを使用しています。疑似モデル:

Javascript:

personobservableArray を拡張して検証ルールとメッセージを設定するにはどうすればよいですか? person と books の両方のサブ配列プロパティを検証する必要があります。次のような自動マッピングなしで、明示的なモデル設定を使用する例のみを見つけました。

次に、ko.validatedObservable、isValid、および validation.init を設定する必要がありますが、これを処理/整理する方法が本当にわかりません。助けてください。

0 投票する
2 に答える
2263 参照

typescript - 文字列インデックス付き配列を使用してオーバーロードされた関数のTypeScriptインターフェイス定義を作成するにはどうすればよいですか?

ノックアウト検証プラグインのTypeScript定義ファイルに取り組んでいます。私が立ち往生していることの1つは、そのライブラリで新しい検証ルールがどのように定義されているかと関係があります。

の基本的な同期バリデーターを作成する方法ko.validationは次のとおりです。

これは簡単ですが、非同期バリデーターを作成する方法は少し異なります。

非同期コールバックは、bool(検証の合格/不合格の場合)またはオブジェクトリテラル(isValid合格/不合格の場合、およびmessage検証メッセージの変更)のいずれかを取ることができます。このために、私は以下を作成しました:

KnockoutValidationStaticこれは、ルール配列を公開するmyの縮小バージョンです。また、文字列のインデックスを指定するためのルール配列用の特別なインターフェイスを作成しました。

私が立ち往生しているのはKnockoutValidationRuleです。私は以下を試しました:

これは、同期バリデーター宣言に対して正常に機能します。ただし、非同期のものを作成すると、次のエラーが発生します。

'{メッセージ:文字列;を変換できません バリデーター:(値:any、params:any、callback:KnockoutValidationAsyncCallback)=> void}'から'KnockoutValidationRule':プロパティのタイプ'バリデーター'タイプ'{メッセージ:文字列; バリデーター:(値:any、params:any、callback:KnockoutValidationAsyncCallback)=> void; }'と'KnockoutValidationRule'には互換性がありません。

タイプ'(値:any、params:any、callback:KnockoutValidationAsyncCallback)=>void'および'{(値:any、params:any):bool;のシグネチャを呼び出します。(値:any、params:any、callback:KnockoutValidationAsyncCallback):void; }は互換性がありません:

コールシグニチャは2つ以下のパラメータを想定しています

コールバックをオプションのパラメーターにすることも検討しましたが、関数が署名に応じて異なる値を返すため、これは機能しません(3番目の引数がない場合はブール値、3番目の引数が存在する場合は無効)。

私はここで何が間違っているのですか?ルールの文字列インデックス配列に何か問題がありますか?このライブラリの動作に基づいてTypeScriptインターフェイスを作成することは可能ですか?

アップデート1

KnockoutValidationRuleインターフェースの過負荷で正しい方向に進んでいたようです。ko.validation.rulesに変更するKnockoutValidationRulesArrayKnockoutValidationRule[]、テストコードが同期バリデーターと非同期バリデーターの両方で正常にコンパイルされることを発見しました...

配列が間違っていると宣言していますか?

アップデート2

定義をテストするために使用しているサンプルコードを次に示します。

私が言ったように、上記ko.validation.rulesはがであるときにうまくコンパイルされますKnockoutValidationRule[]。に変更すると失敗しますKnockoutValidationRulesArray

0 投票する
1 に答える
540 参照

knockout.js - Knockout.ComboboxをKnockOutValidationと一緒に使用するにはどうすればよいですか?

Knockout検証ライブラリでKnockout.Comboboxを使用しようとしています。

https://github.com/AndersMalmgren/Knockout.Combobox

http://jsfiddle.net/Zc9Aj/

上記は機能しません。検証ライブラリはコンボボックスバインディングを検証する方法を理解していないと思いますが、これら2つのライブラリをどのようにリンクしますか?

0 投票する
2 に答える
3147 参照

javascript - knockoutjs 検証 - 検証ルールを再計算する

ビューモデルを検証するために、ノックアウトjs検証プラグインとともにノックアウトjsを使用しています。ここに私のJavaScriptコードがあります

ここに私のHTMLがあります

私がやろうとしているのは、「検証のキャンセル」ボタンがクリックされた場合に、実行時に検証ルールを変更することです。これを行うために、「Canceled」と呼ばれる ko.observable 変数と共にカスタム検証関数を使用しています。「キャンセル」の値に応じて、バリデーター関数は true または false を返します。私が抱えている問題は、ページの読み込み時に検証機能が 1 回しか実行されないことです。「キャンセル」の値が変更された場合、関数は再実行されません。これは正常な動作ですか?「キャンセル」の値を変更したときに、現在のモデルの検証機能を再実行する方法はありますか?

ここにコードを試すためのフィドルがあります。ページの読み込み時に一度だけ実行されることを示すために、検証関数内にアラートを追加しました。

http://jsfiddle.net/eewJe/

0 投票する
1 に答える
9150 参照

javascript - ノックアウト検証カスタムメッセージテンプレートの問題

私はノックアウト検証を使用したことがなく、それを使用して何ができるかを感じ取ろうとしています。

エラーが発生したときに、入力タグの右側にエラーメッセージではなくアイコンを表示できるかどうかを調べています。また、ユーザーがアイコンにカーソルを合わせると、エラーメッセージが表示されます。

誰かがこれをしたか、これを達成する方法のアイデアを持っていますか?

ありがとう。

編集:(私がやろうとしていることのより詳細な例)

ビューモデルに次のものがあるとします。

私のHTML:

私の理解では、名のテキストボックスを空白のままにすると、(デフォルトで)このフィールドが必須であることを示すテキストがテキストボックスの右側に表示されます。

私が理解しようとしているのは、右側にエラーテキストを表示するデフォルトの動作を、右側にアイコンを表示するよう変更する方法です。このアイコンにカーソルを合わせると、エラーメッセージがポップアップ表示されます。

したがって、開始は次のようになります。

messageTemplate機能を正しく使用しているかどうかはわかりません。また、各エラーの正しいエラーメッセージを表示するために、customTemplateでテキストを何にバインドするかわかりません。IOW、firstname、およびlastnameには、カスタムエラーメッセージが含まれる場合があります。両方が同じテンプレートを使用している場合、テンプレートはカスタムエラーメッセージにどのように対応しますか?

それが理にかなっていることを願っています。

0 投票する
1 に答える
4517 参照

validation - ノックアウト検証は、validateObservableをモデル全体に​​対する検証に拡張できますか?

ある程度の深さ/複雑さを持つViewModelにバインドされたビューにKnockoutを使用しています。

ViewModelを検証するには、VMツリー全体を計算する必要があります(子孫のウォーキングと比較)。私は、ノックアウト検証プラグイン@ https://github.com/ericmbarnard/Knockout-Validationを利用して、任意のカスタム検証ルールを作成し、エラーを報告したいと考えていました。

http://jsfiddle.net/drdamour/ZrVZ7/でKO計算されたオブザーバブルを使用して1つの可能なアプローチを設定しました。検証ルールは、2つのサブコレクションが同じ値を持たないことを確認することです。これは機能していますが、Knockout-Validationを使用しておらず、私のルールは計算されたobservableに実装されていますが、これは間違っているようです。

私の質問はKnockoutValidationvalidatedObservable group errorと非常に似ていますが、発見されたソリューション(http://jsfiddle.net/CGuW2/6/でホストされている)は理想的とは言えません。

検証済みの自己をプロパティとしてそれ自体(isValidSum)に追加することにより、ViewModelを複製しているためです。http://jsfiddle.net/drdamour/5B8s4/でこの冗長性を排除しようとしましたが、ビューはvalidatedObservableにバインドできません。

これは、KOまたはKO-Validationのバグである可能性があります。または、まったく間違っている可能性があります。

したがって、問題は、VMの複数のプロパティとレイヤーにわたって評価される条件に対してVMが有効であるかどうかを判断するためのノックアウトの最良の方法は何ですか?

0 投票する
1 に答える
3165 参照

asp.net-mvc-3 - ノックアウト検証 特定のボタンが押された場合のみ

https://github.com/ericmbarnard/Knockout-Validation/wiki/Native-Rules

MCV3 ページでノックアウト検証を使用しています。私が持っている状況は、ボタンが2つあるということです。1 つはコレクションに追加、もう 1 つは保存です。コレクションに追加では、必要に応じて次のプロパティが検索されます。

ページが有効かどうかを確認する 2 つの関数が定義されています。

最初:

そして2番目:

私がしようとしているのは、Save が呼び出された場合に FirstName、LastName、および Email が必要とされないようにすることです。Date1 のみが検証されますが、AddToCollectoin が呼び出されたときに FirstName、LastName、および Email が必要ですが、 Date1 ではありません。Only If Native ルールを設定する方法、またはこれを行うためのより良い方法はありますか。

どんな助けでも大歓迎です!

0 投票する
2 に答える
3230 参照

asp.net-mvc-3 - ノックアウト検証とコントロールをクリアする適切な方法

私は次のコードを持っていますが、アイテムを挿入した後にプロパティをクリアする場合を除いて、正常に動作します。エラーはすぐに表示されます。

ノックアウトビューモデルにメソッドを追加しました

HTMLには次のものがあります。

問題は、this.FirstName(null)を呼び出した後です。エラーはすぐに表示されます!プロパティがクリアされた後でも、ボタンを押したときにのみエラーが表示されるようにしたい