在查找之前更改搜索框中文本框的值

时间:2012-09-24 05:47:22

标签: jquery jqgrid jqgrid-php

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

enter image description here

  1. 在这里,您可以看到值17 20 35 36 37 53 54,我想要那些 值comma saperated所以在我点击之前我想改变 文本框中的值,所以任何人都可以告诉我该怎么做?

  2. 更多我想知道如何定制这种外观 搜索框例如代替idis in我想要一些用户 友好的用户界面,用户可以简单地输入值并点击查找, 但我不知道如何在注入中更改此搜索框的外观 我们自己的外观并使搜索框不可拖动

3 个答案:

答案 0 :(得分:2)

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

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

DEMO:http://jsfiddle.net/mJaqm/

答案 1 :(得分:1)

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

如果是搜索对话框,您可以使用onSearch回调,就像toolbar searching使用beforeSearch一样。

主要思想是,可以使用postData方法获取jqGrid的内部getGridParam参数的引用。 filters的{​​{1}}属性表示序列化为JSON字符串的过滤器(有关详细信息,请参阅the documentation)。因此,您可以将postData转换为对象(使用postData.filters)修改,如果您需要,请转换回JSON字符串(使用JSON.stringify)并将结果放回$.parseJSON。如果您在postData.filtersonSearch回调中进行了所有更改,则会使用已修改的过滤器。

答案 2 :(得分:0)

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

$("#theid").blur(function() {
    value = value.split(' ').join(',');
});