カスタム JavaScript をフォームに追加する

基本フォームマルチステップ フォームの両方のステップ レコードは、カスタム JavaScript という名前のフィールドを含み、フォームのビジュアル表示または機能を拡張または変更できる JavaScript コードを格納するために使用できます。

JavaScript のカスタム ブロックは、ページの下部のクローズ フォーム タグ要素の直前に追加されます。

フォーム フィールド

テーブル フィールドの HTML の入力 ID は、属性の論理名に設定されます。 フィールドの選択や値または他のクライアント側の操作の設置を jQuery で簡単にします。

$(document).ready(function() {
   $("#address1_stateorprovince").val("Saskatchewan");
});

重要

モデル駆動型フォームに選択肢の列を追加して、マルチステップのフォームステップや基本フォームで使用すると、ドロップダウンのサーバーコントロールとして web ページに表示されます。 カスタム JavaScript を使用してコントロールに追加の値を追加すると、ページ送信時に「ポストバックまたはコールバックの引数が無効です」というメッセージが表示されます。

追加したクライアント側フィールドの検証

フォーム上で、フィールドの検証を時々カスタマイズする必要があります。 この例では、希望の連絡方法の為の他フィールドが メール に設定されている場合のみ、ユーザーにメールを指定させます。

注意

クライアント側のフィールド検証はサブグリッドではサポートされません。

if (window.jQuery) {
   (function ($) {
      $(document).ready(function () {
         if (typeof (Page_Validators) == 'undefined') return;
         // Create new validator
         var newValidator = document.createElement('span');
         newValidator.style.display = "none";
         newValidator.id = "emailaddress1Validator";
         newValidator.controltovalidate = "emailaddress1";
         newValidator.errormessage = "<a href='#emailaddress1_label' referencecontrolid='emailaddress1 ' onclick='javascript:scrollToAndFocus(\"emailaddress1 _label\",\" emailaddress1 \");return false;'>Email is a required field.</a>";
         newValidator.validationGroup = ""; // Set this if you have set ValidationGroup on the form
         newValidator.initialvalue = "";
         newValidator.evaluationfunction = function () {
            var contactMethod = $("#preferredcontactmethodcode").val();
            if (contactMethod != 2) return true; // check if contact method is not 'Email'.
            // only require email address if preferred contact method is email.
            var value = $("#emailaddress1").val();
            if (value == null || value == "") {
            return false;
            } else {
               return true;
            }
         };

         // Add the new validator to the page validators array:
         Page_Validators.push(newValidator);

      });
   }(window.jQuery));
}

全般の検証

次へ/送信 ボタンを押すと、entityFormClientValidate という機能が実行されます。 この方法を拡張して、カスタム検証のロジックを追加できます。

if (window.jQuery) {
   (function ($) {
      if (typeof (entityFormClientValidate) != 'undefined') {
         var originalValidationFunction = entityFormClientValidate;
         if (originalValidationFunction && typeof (originalValidationFunction) == "function") {
            entityFormClientValidate = function() {
               originalValidationFunction.apply(this, arguments);
               // do your custom validation here
               // return false; // to prevent the form submit you need to return false
               // end custom validation.
               return true;
            };
         }
      }
   }(window.jQuery));
}

参照