2011-07-06 5 views
0

この問題は、アプリケーションとIE7、Windows XPシステムからの公式デモで発生します。公式デモページでjqGrid 4.1.1の問題:IE7で検索フィールドが変更された場合、検索演算子の選択ボックスが無効になる

:例えばhttp://www.trirand.com/blog/jqgrid/jqgrid.html

は、 "検索(4.0)の新しい" を選択 - > "複合検索"

NAVで "レコードの検索..." ボタンをクリックしてくださいバー

次の「クライアント」とその後、選択ボックス(OPER二行目で

の代わりに「Invのノー」の「クライアント」を選択ator select box)が無効になり、次のテキストフィールドに置かれたものはフィルタリング後にvoid resultを返します。

私はjqGridを製品(学術用)として使用しています。だから私はそれがエラーフリーにする必要があります。

誰かが解決策を見つけるのを助けることができますか?どうもありがとう!

答えて

0

問題は郵便番号のために発生します。

ファイルjquery.jqGrid.min.jsで:

c(".selectopts",j).empty().append(A); 

またはファイルjquery.jqGrid.src.js中:

$(".selectopts",trpar).empty().append(s); 

私はそれを修正するかどうかはわかりませんが、あなたは、この行を削除する場合は、オペレータのリストをしますドロップダウン無効にすることはできませんが変更しないので、列ごとに異なる演算子のセットを使用すると、問題は解決しません。

すべての列で同じ演算子を使用できる場合、これは怠惰で簡単な解決方法です。

1

この全く同じ問題がありました。

上記の答えは、問題のある行は、私は、私はそれは少しハックだけど、それは私の唯一の方法です。この行をコメントアウトし、

$(".selectopts",trpar).parent().html($("<select class=\"selectopts\">"+s+"</select>").bind('change',function() { 
        rule.op = $(this).val(); 
        trpar = $(this).parents("tr:first"); 
        var rd = $(".input-elm",trpar)[0]; 
        if (rule.op === "nu" || rule.op === "nn") { // disable for operator "is null" and "is not null" 
         rule.data = ""; 
         rd.value = ""; 
         rd.setAttribute("readonly", "true"); 
         rd.setAttribute("disabled", "true"); 
        } else { 
         rd.removeAttribute("readonly"); 
         rd.removeAttribute("disabled"); 
        } 

        that.onchange(); // signals that the filter has changed 
       }) 
      ); 

に置き換え

$(".selectopts",trpar).empty().append(s); 

で言ったようにそれを働かせることができます。

1

私は

c(".selectopts",j)[0].options.length=0;c(".selectopts",j).append(A); 

c(".selectopts",j).empty().append(A); 

を交換し、それが動作します。

関連する問題