9

ここで説明する方法を使用してデータ注釈メッセージをローカライズしましたが、基本的には通常の形式の投稿で正常に機能しています。クライアント側でもローカライズされた検証メッセージを見ることができます。

ただし、検証する入力フィールドがあり、ajax呼び出しを使用してロードされる部分ビューがある場合に問題が発生します。何らかの理由で、要素のdata-val-required属性に設定されているローカライズされたメッセージの代わりに、デフォルトの検証メッセージ( "このフィールドは必須です")が表示されます。

次のことを確認しました
。1。「jquery.validate.min.js」と「jquery.validate.unobtrusive.min.js」の両方を含めました。
2. ajax応答を確認しましたが、ローカライズされたメッセージを含むdata-val-required属性が含まれています。

私はすでに次の解決策
を試しました:1。ajax応答(機能しなかった)を$ .validator.unobtrusive.parse('form')として解析しようとしました。2 。ここで
説明するように検証のために動的コンテンツを解析します。まだ解決策はありません。

差し迫った締め切りがあり、これは私を悩ませています。

4

2 に答える 2

3

私はあなたがすでにこれを試したと思います:stackoverflow.com/questions/4406291/jquery-validate-unobtrusive-not-working-with-dynamic-injected-elements-スティーブラムによる答えは私を最も助けました。

基本的に、ページのコンテンツを変更するたびにバリデーターを再初期化する必要があります。検証コードは、ページの読み込み時に1回だけ検証する必要があるコントロールを追跡するリストを作成するためです...

また、入力に正しい名前が付けられていることを確認するために、コードを追加する必要があるようです。ちょっと待ってください。コードを掘り下げます。-うーん、申し訳ありませんが、そのコードはクライアントアプリの一部であり、投稿できません。とにかくそれが違いを生んだかどうかはわかりません...

于 2012-06-15T10:05:18.300 に答える
0

ドキュメントに記載されているように、誰かがこの質問に答えた場合に備えて、フィールドに次のname属性が必要です。

必須:検証が必要なすべての入力要素には「name」属性が必要であり、これがないとプラグインは機能しません。'name'属性もフォームに固有である必要があります。これは、プラグインがすべての入力要素を追跡する方法であるためです。ただし、このグループ化の値はフォームデータの単一部分を表すため、ラジオ要素またはチェックボックス要素の各グループは同じ「名前」を共有します。

ソース

于 2017-07-11T21:59:18.797 に答える