カスタムの追加 JavaScript

Web フォーム ステップ レコードには、フォームの表示や機能を拡張または変更できる JavaScript コードの保存に使用できるカスタム JavaScript という名前のフィールドが含まれています。

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

フォーム フィールド

エンティティ フィールドの HTML の入力 ID は、属性の論理名に設定されます。 これは、jQuery を使用する場合に、フィールドの選択、値の設定、または他のクライアント側の処理が容易になります。

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

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

フォームのフィールドの検証をカスタマイズする必要が出てくる場合があります。 次の例は、カスタム 検証の追加を示します。 この例では、希望する連絡方法の別のフィールドに「電子メール」が設定されている場合にのみ、電子メールを選択します。

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'>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);

// Wire-up the click event handler of the validation summary link
$("a[href='#emailaddress1_label']").on("click", function () { scrollToAndFocus('emailaddress1_label','emailaddress1');});
});
}(window.jQuery));
}

全般の検証

[次へ]/[送信]ボタンをクリックすると、webFormClientValidate と呼ばれる機能が実行されます。 この方法を拡張して、カスタム検証のロジックを追加できます。

if (window.jQuery) {

(function ($) {
if (typeof (webFormClientValidate) != 'undefined') {
var originalValidationFunction = webFormClientValidate;
if (originalValidationFunction && typeof (originalValidationFunction) == "function") 
{

webFormClientValidate = 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));
}

関連項目

Dynamics 365 ポータルの構成
Dynamics 365 ポータルでのエンティティ フォームおよびユーザー定義ロジックの定義
ポータルの Web フォームの手順
フォームの読み込みまたはタブの読み込みのステップの種類
リダイレクト ステップの種類
条件付きのステップの種類