SpreadJSの領域外をクリックした場合にValidationErrorイベントが二回実行される
対象製品
SpreadJS 9J
発生環境
9.20171.0
状況
現象確認済み
詳細
検証エラー機能を有効にし、セルに検証エラーとなるような値を入力のうえSpreadJSの領域外をクリックすると、ValidationErrorイベントが二回実行される現象が発生します。
【再現手順】
1.以下の再現コードを実行します
2.A1セルに"1"を入力します
3.ウィンドウ内のSpreadJS領域以外をクリックします
【動作結果】
ValidationErrorイベントの処理によってアラートウィンドウが表示されますが、このウィンドウでOKボタンを押下しても再度アラートウィンドウが表示される現象が発生します(ValidationErrorイベントが二回実行される)。
【再現コード】
var GCDV = GC.Spread.Sheets.DataValidation;
window.onload = function() {
//初期化
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
// 描画処理を一時停止します
sheet.suspendPaint();
sheet.setValue(0, 0, 120);
//バリデータを設定します
var condition = GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between;
var dv = GCDV.createNumberValidator(condition, 100, 200, true);
dv.errorMessage("数値は100~200の間で入力して下さい。");
sheet.setDataValidator(0, 0, dv);
// 描画処理を再開します
sheet.resumePaint();
//入力エラー発生時にメッセージを表示させます
spread.bind(GC.Spread.Sheets.Events.ValidationError, function (event, data) {
if (data.validator) {
alert(data.validator.errorMessage());
data.validationResult = GCDV.DataValidationResult.retry;
}
});
};
【再現手順】
1.以下の再現コードを実行します
2.A1セルに"1"を入力します
3.ウィンドウ内のSpreadJS領域以外をクリックします
【動作結果】
ValidationErrorイベントの処理によってアラートウィンドウが表示されますが、このウィンドウでOKボタンを押下しても再度アラートウィンドウが表示される現象が発生します(ValidationErrorイベントが二回実行される)。
【再現コード】
var GCDV = GC.Spread.Sheets.DataValidation;
window.onload = function() {
//初期化
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
// 描画処理を一時停止します
sheet.suspendPaint();
sheet.setValue(0, 0, 120);
//バリデータを設定します
var condition = GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.between;
var dv = GCDV.createNumberValidator(condition, 100, 200, true);
dv.errorMessage("数値は100~200の間で入力して下さい。");
sheet.setDataValidator(0, 0, dv);
// 描画処理を再開します
sheet.resumePaint();
//入力エラー発生時にメッセージを表示させます
spread.bind(GC.Spread.Sheets.Events.ValidationError, function (event, data) {
if (data.validator) {
alert(data.validator.errorMessage());
data.validationResult = GCDV.DataValidationResult.retry;
}
});
};