0

次のワークフローを実装する必要があります。

  1. ユーザーが URL に入力する
  2. ユーザーが「検証」ボタンをクリックする
    • URL は ajax を介して検証されます (空ではなく、存在しません)。
    • URL が有効な場合、特定のサイトからいくつかの情報が自動的に解析され、同じページのいくつかのフォーム フィールドに入力されます。
    • これらのフォーム フィールドも、ajax を介して検証する必要があります (一部のフィールドは必須です)。
  3. すべての必須フィールドが入力されている場合、ユーザーは保存ボタンを押すことができます。それ以外の場合は、残りのすべての必須フィールドに入力するよう求められます。

これを達成するための最良の方法は何ですか?URL フィールドとフォーム フィールドは 1 つのフォームに 2 つの異なるモデルがあるため、両方を保存する必要があります。

ほとんどのワークフローは既に実装していますが、これが正しい方法かどうかはわかりません。フォームの ajax 検証を有効にしました。URL フィールドは正しく検証されますが、他のフィールドは検証をトリガーしません。これらのフィールドがブートストラップのアクティブなフォームにパックされている可能性がありますか?

「検証」ボタンをクリックした後、独自の ajax リクエストをトリガーし、URL を手動で検証します。有効な場合はページを解析し、見つかったすべての情報を返します。そうでない場合はエラーを返します。エラーを表示するか、他のフォーム フィールドに入力するよりも成功した方法。自分の ajax リクエストを送信する前に、プログラムで yii ajax 検証をトリガーする方法はありますか?

今、私は他のフォーム フィールドの ajax 検証に行き詰まっています。送信、検証、および成功時の保存はうまく機能します。しかし、提出せずに検証が必要です。独自の ajax リクエストおよびレスポンス処理を実装する必要がありますか、それとも yii 組み込み機能を使用する方法はありますか?

4

1 に答える 1

1

いくつかのフィールドを持つフォームがあるとしましょう:

  • 保存ボタンを無効にします。
  • フィールドの変更をリッスンするリスナーを用意します。
  • 各フィールドを検証してブール値を返すことができる独自の関数を用意します。
  • すべての検証のブール値が true の場合、保存ボタンを有効にします。

また、良い習慣です

  • メッセージをロードできる div を用意して、ユーザーが自分の間違いや無効な入力を認識できるようにします。

そして、それに注意してください

  • バックエンドでデータベース機能を実行していない限り、Ajax は必要ありません。
  • 必要に応じて、リスナーの代わりに検証ボタンを使用できます。

私はあなたを誤解していますか?

于 2013-03-14T14:39:40.930 に答える