2012-01-29 1 views
1

最近、trirand.comフォーラムに投稿されたOlegのクリック可能なチェックボックス・フォーマッタを試しました。 他の回答より下のコードが使用されています。 loadCompleteでブール値のKinnitatud列の値を検出します。clickableCheckBoxフォーマッタがjqgridで使用されている場合のブール値の検索方法

以下のコードは、クリック可能なチェックボックスフォーマッタで動作しなくなります。

$(row.cells[iCol]).children("input:checked").length > 0;ブール値がtrueの場合でも、条件は常に偽 です。

どのように動作させるには? 標準のチェックボックスフォーマッタで動作します。

{ "name":"Kinnitatud","edittype":"checkbox", 
"formatter":"clickableCheckbox", 
"editable":true,"width":0,"classes":null,"hidden":true, 
} 

var LoadCompleteHandler = function() { 
    var iCol = getColumnIndexByName($grid, 'Kinnitatud'), 
     cRows = $grid[0].rows.length, 
     iRow, 
     row, 
     className, 
     changeBackGround; 
for (iRow = 0; iRow < cRows; iRow = iRow + 1) { 
    row = $grid[0].rows[iRow]; 
    className = row.className; 
    if ($.inArray('jqgrow', className.split(' ')) > 0) { 
    // changeBackGround is always false if formatter = "clickableCheckbox" is used: 
    changeBackGround = $(row.cells[iCol]).children("input:checked").length > 0; 
    } 
} 

答えて

1

コードは非常に簡単に修正できます。新しい 'clickableCheckbox'フォーマッタでは、<td>の直接の子ではない<input>があります。電池は含まれてい

<div style="position: relative;"> 
    <input disabled="disabled" value="true" checked="checked" type="checkbox" offval="no" /> 
    <div style="... position: absolute; zoom: 1; opacity: 0;" title="closed"></div> 
</div> 

だからあなたは $(row.cells[iCol]).find(">div>input:checked")に​​を置き換える必要があります。

+0

ありがとうございます。出来た。 – Andrus

+0

@Andrus:あなたは大歓迎です! – Oleg

+0

clickableCheckboxフォーマッタは、colmodelタイトルパラメータを尊重しません。 title:falseが使用されている場合は、まだツールヒントが表示されています – Andrus

関連する問題