「数値」や「文字列」を条件にするときに、設定値を入力するテキストフィールドに、配置されたアイテムの入力値を参照するような設定を行うことはできません。固定の値のみ設定可能となります。
そのため、2つのアイテムの値を比べる場合は条件に「カスタム」を選択し、JavaScriptで条件を記述していただくことになります。
■カスタムスクリプトの記述方法
条件設定ウィザードのコンボボックスから「カスタム」を選択すると以下のような画面が表示されます。
<条件設定ウィザード(カスタム)>
「1」には、呼び出す関数名(function)を記述します。「2」には関数を記載します。
<例>アイテム「TextField2」に「TextField1」の値を入力値が一緒の場合にアクションを実行する条件
を設定する方法
「1」の記述内容
acsionCondision(this)
「2」の記述内容
function actionCondision(element) {
// TextField1の値を取得します。
var textField1 = document.getElementById(“TextField1”).value;
if(textField1 == element.value) {
// TextField1とTextField2の値が一緒なのでアクションを実行する
return true;
}
// TextField1とTextField2の値が一緒なのでアクションを実行しない
return false
}
上記の例では、関数の名前を「actionCondision」という名前で定義しています。
「1」では定義した関数「actionCondision」を呼び出す記述がされます。「2」には関数「actionCondision」で実行される処理が記述されます。 呼び出しに記述されている「this」はこのアクションが設定される
アイテム(ここではTextField2)になります。関数「actionCondision」では、受け渡されたアイテム (TextField2)を「element」という変数で扱っています。
処理内容としては、まずアイテム「TextField1」の値を取得し、if文で「TextField2」の値と一致するかチェックし、一致すればtrueを返却する(アクションが実行される)。一致しなければfalseを返却する
(アクションを実行しない)といった処理なります。
カスタムスクリプトでは、上記のように、Javascriptで記述できる処理であれば、どのような処理でも設定可能になります。
また、上記の設定を行った後、アイテム「TextField3」を配置し、アクションに「TextField3」の値が「TextField1」の値を一致する場合に実行する、といった条件を設定する場合は、「1」に「actionCondision(this)」と記述すると上記の関数を使いまわせるので、「2」を記述する1は
ありません。
アクション「カスタムスクリプト」もほぼ同様の設定方法となります。(ただし、条件設定ではないので、true、falseを返却する1はありません。)
以下に、入力された値をアラート表示するカスタムスクリプトの例を記述します。
「1」に記述する内容
alertAction(this)
「2」に記述する内容
function alertAction(element) {
alert(element.value);
}
-- 対象 ------------------------------------------------------------------------
iWP/エクステンションシリーズ/IM-VisualDesigner
--------------------------------------------------------------------------------
FAQID:151
”[アイテム名]”の形式で配置されたアイテムの値は、動的に参照できません