我同意,剛剛遇到這種行爲我自己。 這裏是解決方案。
將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是連續未定義的。
希望有道理,我的代碼可以幫助你。