2010-10-26 113 views
1

當按下「Enter/Return」鍵時,我希望能夠在搜索對話框中調用查找按鈕。不幸的是,'savekey'選項不會提交表單,也不會像編輯時那樣提交表單並添加表單編輯。jqGrid navGrid搜索提交輸入按鍵不起作用

下面是我使用的代碼片段。

$("#list").jqGrid('navGrid', '#pager', 
    {edit: true, add: true, del: true, search: true, view: true}, 

    ... 

    { 
     caption: "Search", 
     closeAfterSearch: true, 
     closeOnEscape: true, 
     sopt: ['cn','eq'], 
     savekey: [true, 13] 
    }, 

這裏給form_editing文檔的鏈接我請教:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing&s[]=savekey

下面是對單場的鏈接搜索文檔:

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:singe_searching&s[]=navgrid

我可以」找到任何東西來暗示這個功能存在,但我似乎是一個無腦的人。與往常一樣,任何幫助或方向,不勝感激。

+0

我已經找到了解決方案,爲我工作http://stackoverflow.com/questions/9655775/how-to-enable-enter-in-jqgrid-advanced-search-window – 2013-07-03 12:58:52

回答

2

在我看來,如果要更換savekey: [true, 13]選項,這真的不用於搜索工作的問題凸輪可以解決以下beforeShowSearchonClose事件處理

beforeShowSearch: function(form){ 
    form.keydown(function(e) { 
     if (e.which == 13) { 
      $(".ui-search", form).click(); 
     } 
    }); 
}, 
onClose: function(form){ 
    form.unbind('keydown'); 
} 

這種方法將工作不僅對single field searching但也爲advance searching

如果您希望「輸入」鍵僅用於輸入字段,您可以將form.keydown替換爲$('.vdata',form).keydown並在unbind中進行相應更改。

+0

這完全有道理。我必須試一試。謝謝您的幫助。 – gurun8 2010-10-27 02:07:19

+0

像夢一樣工作。 – gurun8 2010-10-28 04:38:38

0

這非常有幫助,但我提供的解決方案對我來說並不完全正常。我調整了所提供的代碼,它現在有些作用,但它似乎沒有提交正確的數據。每當我按下回車鍵時,它會在輸入框中提交一個「0」,而不是實際上放在那裏的任何東西。無論出於什麼原因,它都不會發布searchString。我正在使用的代碼是:

beforeShowSearch: function(form){ 
    $(form).keydown(function(e) { 
    if (e.keyCode == 13) { 
     $("#fbox_cust_grid_search").click(); 
    } 
    }); 
}, 
onClose: function(form){ 
    $(form).unbind('keydown'); 
} 

做你們任何人都有建議,可能會發生什麼嗎?

編輯:有趣的是,當我在.click()方法之前提醒某事(任何事情)時,數據完美地張貼出來。有任何想法嗎?

+0

我遇到了同樣的問題。當我第一次點擊輸入時,它會提交帶有'searchString'空和'_search' ='true'的請求,當我第二次提交正確的數據時。這也發生在使用'searchOnEnter' – 2013-05-09 15:21:21

+0

有沒有人找到解決方案?我有同樣的問題。 – CoffeeIsProgramming 2013-09-17 15:13:25

1

我在FireFox上有同樣的問題,但上面的解決方案在IE中工作正常。爲了使其在Firefox的工作,我不得不使用對焦功能,而不是點擊如下:

beforeShowSearch: function (form) { 
         form.keydown(function (e) { 
          if (e.which == 13) { 
           $("#fbox_list_search").focus(); 
          } 
         }); 
        }, 
0

試試下面的代碼。適用於我:

beforeShowSearch: function(form){ 
    $(form).keydown(function(e) { 
     if (e.keyCode == 13) { 
     setTimeout(function() { 
      $("#fbox_cust_grid_search").click(); 
     }, 200); 
     } 
    }); 
    return true; 
}, 
onClose: function(form){ 
    $("#fbox_cust_grid_search").unbind('keydown'); 
} 

當點擊方法調用太快時似乎存在問題。給網格200毫秒做搜索之前必須做的事情似乎有訣竅。