您一起发布了两个单独的问题。其他用户很难找到信息。最好将当前问题一分为二。
不过,关于您问题的第一部分,我只想描述旧搜索对话框的行为是因为使用了jQuery.clone。该功能有许多错误,长期以来没有修复。所以搜索对话框在某些情况下会出错。在搜索对话框的新实现中,没有明确使用jQuery.clone作为解决问题的唯一安全方法。您在新版本的搜索对话框中遗漏的行为默认实现。在新的搜索对话框中,相应的代码不存在,但您可以自己编写。大多数情况下,您需要在afterRedraw回调中编写自定义代码。
您应该考虑到 jqGrid 支持现在强大的multipleGroup: true
选项。因此,您需要的可能是从同一组的另一个控件中复制选择:
关于你的第二个问题:
答案包含描述解除绑定想法的演示click
。只有当它是唯一的按钮时,最好的事件可能是取消绑定或隐藏“删除规则”按钮。
如果您不使用multipleGroup: true
选项,您可以尝试以下操作
$.extend($.jgrid.search, {
multipleSearch: true,
overlay: 0,
afterRedraw: function () {
// don't permit to remove the last rule
$('input.delete-rule:first',this).unbind('click').hide();
}
});
在使用multipleGroup: true
的情况下,更好的可能是另一个代码
$.extend($.jgrid.search, {
multipleSearch: true,
multipleGroup: true,
overlay: 0,
afterRedraw: function () {
// don't permit to remove the last rule
var $delRules = $('input.delete-rule', this);
if ($delRules.length === 1) {
$delRules.unbind('click').hide();
}
}
});