2017-01-03 50 views
0

我使用高级搜索和filterToolbar。两者共享大多数searchOptions。 我设置了searchoptions.dataInit动态,并且需要ATTR“名”的元素,为了得到一些colmodel ATTRS当前山坳,像这样...jqgrid高级搜索输入没有属性

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” 它打印... 输入类型= “文本” 名称= “prc_start” ID = “gs_prc_start” 值类= “hasDatepicker”
  • 当“搜索形式”打印...输入类型=“文本” ID =“jqg2”角色=“文本框”类=“输入榆树hasDatepicker”>

因此,在第二情况我无法获得字段名称,我需要获取一些colmodel参数。

我该如何解决这个问题? (jqGrid v4.6.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");)将外细胞,其中包含与该日期选择器输入。 $td.siblings(".columns")将使用名称在列上的单元格和$td.siblings(".columns").find("select").val()为您指定列名称。

+0

奥列格:优秀,它的作品!谢谢! (对不起,我仍然不能投票) – Aberel

+0

之前,我没有尝试“最接近(”td.data“)”,因为我读过其他回复,你说dataInit元素是在追加到真正的dom之前创建的,所以我猜测它不会工作...最接近(“td.data”); – Aberel

+0

@Aberel:不客气!您将在到达15个声誉点后获得投票权(每天约30个问题或答案**)。你应该[“接受”](http://meta.stackexchange.com/a/5235/147495)答案和一些旧的答案,这解决了你的问题。顺便说一下,接受会增加你的声望。 – Oleg