フォームのサブフォームの重複検証
このケースは、三者の開発者「peng」から来ています
前提条件
このチュートリアルでは、基本的な機能の一部を使用する必要があります。まず、次の機能を理解することができます。
効果を実現する


実装手順
通常のフォームページの作成
通常のフォームページを作成します。詳細はこちらを参照してください通常フォーム。

キャンバス領域で次のコンポーネントをドラッグします。
- サブフォーム: サブフォームの単一フィールドの重複検証に名前を付けます
- 単一行テキスト: 単一行テキストの名前を付けます
- サブフォーム: サブフォームの複数フィールドの組み合わせに名前を付けて繰り返し検証します
- 単一行テキスト: 単一行テキストの名前を付けます
- 数値: 数値の名前を付けます
ツール関数の追加
左側のリボンのアクションパネルに、次の関数を追加します。

/**
* 子表单字段重复校验
* @param tableFieldId {String} 子表单唯一标识
* @param validateFieldIdList {Array} 需要校验的子表单组件唯一标识集合
*/
export function validateTableField(tableFieldId = '', validateFieldIdList = []) {
if (tableFieldId && validateFieldIdList.length) {
const tableValue = this.$(tableFieldId).getValue();
const rowValues = this.item.values;
const validateResult = tableValue.filter((item) => {
var filterRule = '';
validateFieldIdList.forEach((_item, _index) => {
filterRule += `item['${_item}'] && item['${_item}'] === rowValues['${_item}'] ${(_index + 1) < validateFieldIdList.length ? '&&' : ''}`;
});
return eval(filterRule);
});
return validateResult.length <= 1;
} else {
return true;
}
}
カスタム検証関数の設定
検証が必要なサブフォームコンポーネントを見つけ、カスタム関数をクリックして、次の関数をバインドします。コンポーネントの一意のidを変更することに注意してください。


function validateRule(value) {
return this.validateTableField('tableField_l9nwtxmy', ['textField_l9nwtxmz']);
}


function validateRule(value) {
return this.validateTableField('tableField_l9nmw8iy', ['textField_l9nmw8iz', 'numberField_l9nmw8j0']);
}
保存ページ

オンラインで試遊する
この文書は機械翻訳により生成されています。翻訳により生じた齟齬や相違点は拘束力を持たず、コンプライアンスや執行目的において法的効力はありません。
このドキュメントは役に立ちましたか?