2017-01-03 59 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