2

Kentico CMS サイトに簡単なフィードバック フォームがあります。

2 つの入力と送信ボタンがあります。入力の 1 つは yes/no ラジオ ボタンの選択で、もう 1 つはテキスト領域の入力です。(スクリーンショットをご覧ください)。

次の 3 つの条件の少なくとも 1 つが満たされた場合にのみ、ユーザーがフォームを送信できるようにしたい:

  1. 'このページは役に立ちましたか?' と答えました。
  2. テキスト領域の値が空白ではなく、値がデフォルトのテキスト値 (「このページを改善するにはどうすればよいですか?」) と等しくありません。フィードバックを提供することで、この情報を改善することができます。」
  3. または、1 と 2 の両方の基準が満たされています。

基本的に、入力の少なくとも 1 つに答えてもらいたいのです。

このタイプの検証は、Kentico フォーム/オンライン フォーム Web パーツを使用して可能ですか?

フォームのスクリーンショット (役に立つかもしれません): ここに画像の説明を入力

4

1 に答える 1

1

この機能について Kentico に問い合わせたところ、次のような回答がありました。

残念ながら、このタイプの検証は提供されていません。Kentico CMS は、各組み込みコントロールの検証を個別に実行します。

一般に、2 つのオプションがあります。1 つ目は 、必要に応じてカスタム検証を実行できるようにするOnBeforeValidateまたはOnAfterValidateイベントを実装することです。次のように各フィールドにアクセスできます。

string answerText = ValidationHelper.GetString(viewBiz.BasicForm.Data.GetValue("answerText"), "");

検証が失敗した場合は、 BizFormコントロールの StopProcessing を trueに設定する必要があります。

viewBiz.StopProcessing = true;

BizForm に関連するカスタマイズの可能性の詳細については、http://devnet.kentico.com/docs/devguide/index.html?api_bizforms_customization_possibilities.htm を参照してください

別の方法は、ドキュメントに記載されているとおりにカスタム フォーム コントロールを作成することです: http://devnet.kentico.com/docs/devguide/developing_form_controls.htm

フォーム コントロールを使用すると、ユーザーは両方のフィールドを指定できるため、要件に応じてカスタム検証 ( IsValidメソッド) を実行できます。

for コントロールが使用されるフィールド以外のフィールドを設定するには、GetOtherValuesメソッドを実装する必要があります。

次に、他のフィールドを無効にして、フォームに 2 回表示されないようにします。

于 2012-06-07T08:09:46.693 に答える