[英]jqgrid checkbox change event
我的數據庫中有true / false值。 我想用jqgrid中的復選框更新它們。 一旦該值設置為true,它將保持為真且不應更改。 請看一下我的專欄模型:
{
name : 'available',
width : 12,
resizable: true,
editable: true,
align: 'center',
edittype:'checkbox',
formatter: "checkbox", formatoptions: {disabled : false},
classes:'check',
editrules:{required:false}, editoptions:{size:39,value:"True:False"}
}
我正在嘗試在選中復選框時捕獲事件,目前它們都未經檢查,到目前為止我已經嘗試過:
jq(".check input").each(function(){
jq(this).click(function(){
aler("works");
});
});
jq("input[type='checkbox']").change(function(){
alert("works");
});
jq(":checkbox").parent().click(function(evt) {
if (evt.target.type !== 'checkbox') {
var $checkbox = jq(":checkbox", this);
$checkbox.attr('checked', !$checkbox.attr('checked'));
$checkbox.change();
alert("");
}
});
這些都不起作用,我被卡住了不知道還有什么可以嘗試。
使用firebug檢查復選框代碼時,它看起來像這樣:
<input type="checkbox" offval="no" value="false">
您可以創建自定義格式化程序。 在你的網格中,
formatter: cboxFormatter,
然后定義函數,
function cboxFormatter(cellvalue, options, rowObject)
{
return '<input type="checkbox"' + (cellvalue ? ' checked="checked"' : '') +
'onclick="alert(' + options.rowId + ')"/>';
}
您可以使用onclick
執行任務或調用函數。
自定義格式化程序的使用是其中一種可能性。 也可以使用不引人注目的onclick
綁定樣式
第一個定義
var grid = $("#list"),
getColumnIndexByName = function(columnName) {
var cm = grid.jqGrid('getGridParam','colModel'),i=0,l=cm.length;
for (; i<l; i++) {
if (cm[i].name===columnName) {
return i; // return the index
}
}
return -1;
},
disableIfChecked = function(elem){
if ($(elem).is(':checked')) {
$(elem).attr('disabled',true);
}
};
然后一個可以使用loadComplete
的代碼就好了
loadComplete: function() {
var i=getColumnIndexByName('closed');
// nth-child need 1-based index so we use (i+1) below
$("tbody > tr.jqgrow > td:nth-child("+(i+1)+") > input",
this).click(function(e) {
disableIfChecked(this);
}).each(function(e) {
disableIfChecked(this);
});
}
請在此處查看相應的演示。
這對我有用:
// Listen for Click Events on the 'Process' check box column
$(document).on("click", "td[aria-describedby='grdOrders_Process']", function (e) {
var checked = $(e.target).is(":checked")
var rowId = $(e.target).closest("tr").attr("id")
rowData = jQuery("#grdOrders").getRowData(rowId);
alert("Checked: " + checked)
alert("OrderNo: " + rowData.OrderNo);
alert("Name: " + rowData.Name);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.