私は同意します、自分でこの動作に遭遇しただけです。これが解決策です。
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;
何らかの理由で、最初の対話中に defaultValue が設定されていません。私の推測では、それを "" に初期化すると、未定義をチェックする必要はありません。
いずれにせよ、defaultValue はセルの前の値を保持するため、それが空で編集中の最初のセルである場合は未定義であり、その後は他のすべての空のセルに対して "" に設定されます。
問題は、セル エディターが入力を検証するために、この関数が値が変更されたことをグリッドに通知する必要があることです。提供された実装では、式は常に false を返します。
$input.val() == "" evaluates to true and then the expression
!($input.val() == "" && defaultValue == null)) evaluates to false
これは、defaultValue が継続的に未定義であることを意味します。
それが理にかなっており、私のコードがお役に立てば幸いです。