質問は、前の質問への回答と重複しているようです。jqGridの現在のバージョンのバグであることを確認した、元の質問に対する回答を書きました。"groupOp":"OR"回避策として、空でないパーツと両方rulesを含むリクエストを変更groupsし、rulesパーツがの中に新しい追加グループとして挿入されるようにすることを提案しましたgroups。
投稿した例では、最初にjQuery.parseJSONを使用して、投稿したJSON文字列postData.filtersをオブジェクトフォームに変換できます。
{
groupOp: "OR",
rules: [
{field: "Total_case", op: "eq", data: "29"}
],
groups: [
{
groupOp: "AND",
rules: [
{field: "Total_case", op: "eq", data: "2"},
{field: "percent", op: "eq", data: "100"}
],
groups: []
}
]
}
groupOp次に、それが「OR」であり、両方rulesがgroups空でない配列であるかどうかをテストできます。rulesこの場合、パーツを。の内側に移動できgroupsます。言い換えれば、それを次のオブジェクトに変換することができます
{
groupOp: "OR",
rules: [],
groups: [
{
groupOp: "AND",
rules: [
{field: "Total_case", op: "eq", data: "2"},
{field: "percent", op: "eq", data: "100"}
],
groups: []
}
{
groupOp: "AND",
rules: [
{field: "Total_case", op: "eq", data: "29"}
],
groups: []
}
]
}
最後JSON.stringifyに、オブジェクトをJSON文字列に変換し直して、結果をに割り当てることができますpostData.filters。
更新:フィルタリング/検索リクエストの処理中にjqGridを内部的に実行する変更を説明するプルリクエストを投稿しました。
デモでは修正が使用されており、すべてが正しく機能しているようです。