我不認爲您需要在自定義複選框格式化程序中設置任何offval
屬性。如果使用edittype: "checkbox"
(參見the part of code),jqGrid設置屬性本身。所以在我看來,你不需要在你的custom formatter和custom editing control中也不需要設置offval
,如果你也創建它的話。
順便說一下,當我發佈formatter: "clickableCheckbox"的代碼的時候,我和你有同樣的問題。我不明白offval
的意思,我只是在代碼中包含offval="no"
。 :-)。我不認爲它有任何意義,但要確保必須測試所有原因。
如果你寫你多次使用您的自定義格式,我會建議你使用
(function ($) {
"use strict";
$.extend($.fn.fmatter, {
yourFormatterName: function (cellValue, options) {
....
}
});
$.extend($.fn.fmatter.yourFormatterName, {
unformat: function (cellValue, options, elem) {
...
}
});
}(jQuery));
爲格式化的原型。通過這種方式,您將註冊新的格式化程序「yourFormatterName」,您可以像使用其他任何predefined formatters一樣使用它:您只需在相應列的列定義中使用formatter: "yourFormatterName"
而不是formatter: "checkbox"
。我覺得這種方式非常實用。
我已經使用您提供的格式:-)。完成後會發布我的格式化程序,首先需要澄清offval屬性。我看到它也在這裏使用https://github.com/tonytomov/jqGrid/blob/v4.4.4/js/grid.formedit.js#L398-L404 –
@MartijnB:你引用了**表單編輯的代碼**。表單中的控件是由我在答案中引用的'createEl'函數創建的。因此,如果使用'edittype:「複選框,''offval'將根據返回'unformat'函數的值來設置。所以我仍然認爲**格式化程序**中不需要或不使用'offval'屬性。 – Oleg
我開始相信你是對的。但後來我不明白爲什麼默認複選框格式化程序包含offval。 –