找回密码
 立即注册

QQ登录

只需一步,快速开始

yang1108

注册会员

8

主题

22

帖子

80

积分

注册会员

积分
80

微信认证勋章

yang1108
注册会员   /  发表于:2018-12-13 09:04  /   查看:3508  /  回复:1
业务场景包括复制粘贴 , 手动录入 皆不允许录入除数字以外的所有数据 是否有此种方法 或者可以解决此种问题的思路  

1 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-13 10:39:20
沙发
您好,可以实现。

用SpreadJS的Events可以监听用户输入、粘贴等操作时,单元格的值的变化。

参考API :

http://help.grapecity.com/spread ... .Sheets.Events.html

需要用到的事件有3个,我用一个示例演示一下。

示例代码如下:

  1. function initSpread(spread) {
  2.             spread.bind(spreadNS.Events.EditEnding, function (e, args) {
  3.                 console.log(args);
  4.                 var val = Number(args.editingText);
  5.                 if(isNaN(val)){
  6.                     alert("Number only");
  7.                     args.cancel = true;
  8.                 }
  9.             });

  10.             spread.bind(spreadNS.Events.ClipboardPasting, function (e, args) {
  11.                 console.log(args);
  12.                 var pasteOption = args.pasteOption;
  13.                 // 判断当前粘贴类型为粘贴值或粘贴所有内容(包含值)
  14.                 if(pasteOption === GC.Spread.Sheets.ClipboardPasteOptions.values ||
  15.                     pasteOption === GC.Spread.Sheets.ClipboardPasteOptions.all){

  16.                     var data = args.pasteData.text;
  17.                     var dataArr = data.trim().split("\t");
  18.                     if(dataArr && dataArr.length > 0){
  19.                         for(var i=0; i<dataArr.length; i++){

  20.                             var val = dataArr[i].trim();
  21.                             if(val && val.length > 0){
  22.                                 val = Number(val);
  23.                                 if(isNaN(val)){
  24.                                     alert("Number only");
  25.                                     args.cancel = true;
  26.                                     break;
  27.                                 }
  28.                             }

  29.                         }
  30.                     }
  31.                 }
  32.             });
  33.         }
复制代码

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部