作成日: 2024/12/03 最終更新日: 2024/12/03
文書種別
不具合
発生環境
対象バージョン:V5.0J
対象コントロール:GcTextBox、GcMask、GcNumber、GcDateTime
状況
回避方法あり
詳細
GcInputManBaseを継承したコントロール(GcTextBox、GcMask、GcNumber、GcDateTime)を定義する際に、インスタンスのプロパティにtypeを追加すると、GcValidatorコントロールによる検証が動作しなくなります。
例えば、以下のようなコードを実行しても、拡張したGcTextBoxに対してGcValidatorによる検証が行われず、エラー通知が表示されません。
<div>
TextBox拡張コントロール<br>
<input id="gcTextBox"><br><br>
</div>
<script>
class EditText extends GC.InputMan.GcTextBox {
constructor(ctrlID, type, itemID, config) {
const element = document.getElementById(ctrlID);
super(element, config);
this.type = type;
this.ctrlId = ctrlID;
this.itemID = itemID;
}
}
window.addEventListener('load', () => {
const editText = new EditText('gcTextBox');
const validator = new GC.InputMan.GcValidator({
items: [
{
control: editText,
ruleSet: [
{
rule: GC.InputMan.ValidateType.Required
}
]
}
],
defaultNotify: {
tip: true
}
});
validator.validate();
});
</script>
回避方法
インスタンスのプロパティをtype以外(例:testtype)に設定すると回避できます。
<div>
TextBox拡張コントロール<br>
<input id="gcTextBox"><br><br>
</div>
<script>
class EditText extends GC.InputMan.GcTextBox {
constructor(ctrlID, testtype, itemID, config) {
const element = document.getElementById(ctrlID);
super(element, config);
this.testtype = testtype;
this.ctrlId = ctrlID;
this.itemID = itemID;
}
}
window.addEventListener('load', () => {
const editText = new EditText('gcTextBox');
const validator = new GC.InputMan.GcValidator({
items: [
{
control: editText,
ruleSet: [
{
rule: GC.InputMan.ValidateType.Required
}
]
}
],
defaultNotify: {
tip: true
}
});
validator.validate();
});
</script>