jqgrid高级搜索输入没有属性

时间:2017-01-03 13:06:29

标签: javascript jquery jqgrid

我同时使用高级搜索和filterToolbar。两者共享大多数searchOptions。 我动态设置了searchoptions.dataInit,并且需要元素的attr“name”,以获得当前col的一些colmodel attrs,就像这样......

searchoptions.dataInit = function(element) {
   console.log(element);
   var colName = $(element).attr('name'));
   var attrs = $grid.jqGrid('getColProp', colName);
   (hwere set some different datePicker options depending on col attrs ...)
}

这在filterToolbar情况下工作正常,但在高级搜索中没有。 IN dataInit我调试“元素”......

  • 在“filterToolbar”中打印时... input type =“text”name =“prc_start”id =“gs_prc_start”value class =“hasDatepicker”
  • 当在“搜索表单”中打印时...输入类型=“文本”id =“jqg2”role =“textbox”class =“input-elm hasDatepicker”>

所以,在第二种情况下,我无法获得字段名称,我需要获得一些colmodel参数。

我该如何解决这个问题? (jqGrid v4.6.0,我现在无法升级版本)

1 个答案:

答案 0 :(得分:0)

您描述的问题仅存在于旧的jqGrid 4.6中。作为解决方法,我建议您使用以下

searchoptions.dataInit = function(element) {
    var $td = $(element).closest("td.data");
    if ($td.length > 0) {
        // in searching dialog
        alert($td.siblings(".columns").find("select").val());
    }
    ...
}

$tdvar $td = $(element).closest("td.data");)将是外部单元格,其中包含带有datepicker的输入。 $td.siblings(".columns")将在列上添加名称的单元格$td.siblings(".columns").find("select").val()为您提供列名。