将函数绑定到jQGrid过滤的文本框?

时间:2012-09-08 11:03:58

标签: javascript jquery jqgrid textbox keyup

我用jquery编写了以下代码:

$('input[type="text"]').keyup(
    function (event) {
        // Allow: backspace, delete, tab, escape, and enter
        if (event.keyCode != 68 && event.keyCode != 186) return;
        var textbox = $(this);
        var clickAttr = textbox.attr('click');
        if (clickAttr != undefined && clickAttr.indexOf('NumericTextBoxKeyPress') > -1) return; 
        var insertedValue = textbox.val();
        insertedValue = insertedValue.replace(/a/g, 'SampleA');
        insertedValue = insertedValue.replace(/b/g, 'SampleB');
        textbox.val(insertedValue);
    }
);

普通文本框没问题,但上面的代码不适用于jQGrid过滤的文本框!

Bind a function to jQGrid filtering's textboxes

你能指导我,如何将keyup函数绑定到jQGrid过滤的文本框?

2 个答案:

答案 0 :(得分:1)

使用jquery live()绑定事件

 $('input[type="text"]').live("click", function(){ .... });

答案 1 :(得分:1)

如果您有网格并希望在搜索工具栏的一个指定输入字段绑定事件,则可以使用dataEvents searchoptions的相应列colModel(请参阅{ {3}})。有关代码示例,请参阅here

如果您需要将某些事件(例如keyup)绑定到网格搜索工具栏的所有输入字段,您可以执行以下操作:

var $grid = $("#list"); // the grid

// create the grid
$grid.jqGrid({
    //... jqGrid options
});

// create the searching toolbar with the line like
$grid.jqGrid('filterToolbar', {defaultSearch: 'cn'});

// get all input fields of the searching toolbar
var $toolbarRow = $grid.closest(".ui-jqgrid-view")
                       .find(".ui-jqgrid-htable .ui-search-toolbar");

// make the binding of all input fields to the event which you need
$toolbarRow.find('input[type="text"]').keyup(function (e) {
    // the code of your event handler
});