我同意,刚刚遇到这种行为我自己。 这里是解决方案。
将this.isValueChanged函数内容更改为以下内容。
if(($input.val().length > 0) && ($input.val() != defaultValue))
return true;
else if(($input.val() == defaultValue)&&($input.val().length > 0))
return true;
else if(($input.val().length == 0) && ((undefined === defaultValue)||(defaultValue == "")))
return true;
else
return false;
出于某种原因,默认值第一interraction期间未设置,如果你初始化我的猜测为“”你不会需要检查未定义。
无论如何defaultValue保存单元格的前一个值,所以当它是空的并且它是第一个被编辑的单元格时,它是未定义的,之后它被设置为“”所有其他空单元格。
问题是这个函数需要告诉网格该值已经改变,以便单元编辑器验证输入。在提供的实现中,表达式总是返回false,因为
$input.val() == "" evaluates to true and then the expression
!($input.val() == "" && defaultValue == null)) evaluates to false
这意味着defaultValue是连续未定义的。
希望有道理,我的代码可以帮助你。