我正在使用jqgrid使用multiselect選項。有兩個不同的功能,我必須執行。jQgrid:禁用複選框單擊並僅在複選框被單擊時選中複選框
功能1: 我必須禁用檢查複選框取決於某些條件。爲此,我在beforrowselect事件中使用下面的代碼塊。
beforeSelectRow: function(rowid, e) {
if($("#jqg_TableId_"+rowid).attr("disabled")){
return false;
}
return true;
}
該功能在這段代碼中正常工作。
功能2:但問題是,當我點擊行中的任何地方,複選框被選中,但複選框值沒有出來正確。當我在複選框區域內點擊時,複選框的值是準確的。爲此,我想限制用戶點擊複選框區域以點擊複選框。爲此,我使用下面提到的代碼塊。
beforeSelectRow: function(rowid, e) {
return $(e.target).is('input[type=checkbox]');
},
如果我單獨使用任何一個塊,那麼它的工作正常的功能。 我需要實現這兩個功能,但都返回值。這兩種情況都不可能返回值。請幫助我如何實現這兩個功能。
下面是我必須實現的完整代碼。
beforeSelectRow: function(rowid, e) {
if($("#jqg_TableId_"+rowid).attr("disabled")){
return false;
}
return true;
}
return $(e.target).is('input[type=checkbox]');
},
beforeSelectRow中用於禁用複選框選擇的塊按預期工作,但rowattr事件不按照需求工作。整個行在返回「class」時禁用:「ui-state-disabled ui-jqgrid-disablePointerEvents」。只需點擊複選框區域即可檢查複選框。 – user2992704
@ user2992704:是的,這是我的預期。設置行禁用可以一次完成兩件事:向用戶顯示哪些行不能被選擇2)通過選擇所有行來解決問題。我們可以使用其他一些預定義的類:'ui-subgrid','jqgroup'或'jqfoot'。見https://jsfiddle.net/OlegKi/4ga1ekh3/5/-一個**必須結合**'rowattr'和'beforeSelectRow'。 – Oleg