如果只是非空校验,可以设置:
dv1.ignoreBlank(false);
这样空数据也可以触发验证。按您说的逻辑,可以参考以下的代码:
- var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
- var sheet = spread.getActiveSheet();
- spread.options.highlightInvalidData = true;
- var dv = GC.Spread.Sheets.DataValidation.createTextLengthValidator(GC.Spread.Sheets.ConditionalFormatting.ComparisonOperators.greaterThan, "4");
- dv.showInputMessage(true);
- dv.inputMessage("Number of characters must be greater than 4.");
- dv.inputTitle("tip");
- dv.ignoreBlank(false);
- sheet.setDataValidator(1, 1, 1, 1, dv, GC.Spread.Sheets.SheetArea.viewport);
- sheet.bind(GC.Spread.Sheets.Events.CellChanged, function (e, info) {
- if(dv.isValid(sheet, 1,1 , sheet.getCell(1,1).value()) == true){ // 验证成功
- var dv1 = new GC.Spread.Sheets.DataValidation.createListValidator('Fr,Vegetable,Food');
- dv1.ignoreBlank(false);
- sheet.setDataValidator(1,1, dv1);
- }
- else{
- sheet.setDataValidator(1, 1, 1, 1, dv, GC.Spread.Sheets.SheetArea.viewport);
- }
- });
-
复制代码 |