1

我正在尝试在 jgrid 中实现复杂的搜索功能。但我想在用户按下查找按钮之前更改用户在搜索框中指定的值。

在此处输入图像描述

  1. 在这里你可以看到值17 20 35 36 37 53 54,我希望这些值用逗号分隔,所以在我点击 find 之前,我想更改文本框中的值,所以谁能告诉我我该怎么做?

  2. 此外,我想知道如何自定义此搜索框的外观,而不是idis in我想要一些用户友好的 UI,用户可以在其中简单地输入值并点击查找,但我不知道如何更改此搜索的外观框注入我们自己的外观并使搜索框不可拖动

4

3 回答 3

2

您可以使用逗号split()将其拆分为空格上的数组,然后.join()再次使用逗号作为分隔符(无论如何默认)。

$("input[type='text']").blur(function(){
  var value = this.value;
  this.value = value.split(' ').join(',');
});

演示:http: //jsfiddle.net/mJaqm/

于 2012-09-24T05:48:26.070 回答
1

我建议您阅读答案,其中我展示了如何根据需要实现更复杂的用户输入更改。

在搜索对话框的情况下,您可以像使用工具栏搜索一样使用onSearch回调。beforeSearch

主要思想是可以在方法postData方面获得jqGrid的内部参数的参考getGridParam。的filters属性postData表示过滤器序列化为 JSON 字符串(有关详细信息,请参阅文档)。因此,您可以根据需要转换postData.filters为对象(使用$.parseJSON)修改,转换回 JSON 字符串(使用 JSON.stringify)并将结果放回postData.filters. 如果您在内部进行所有更改onSearchbeforeSearch回调,则将使用修改后的过滤器。

于 2012-09-24T11:03:34.837 回答
0

您可以将其添加到onBlur文本框的事件中,该事件在光标被移开时触发:

$("#theid").blur(function() {
    value = value.split(' ').join(',');
});
于 2012-09-24T05:50:09.623 回答