2010-05-13 35 views
0

我想知道是否有可能使用JqGrid高級搜索爲我想要搜索的某些字段顯示多個文本框。 例如,如果我有「電話號碼」字段,我希望能夠顯示2個框,一個用於區號,另一個用於電話號碼的其餘部分。 然後按'查找'後,我想能夠得到兩個值併合並它們或做別的事情。JqGrid搜索字段的多個文本框

任何幫助,將不勝感激,

感謝,

fromano2802

回答

2

你有一個有趣的問題,但我建議你做的電話號碼更漂亮和人性化的輸入。有一個不錯的jQuery「Masked Input」插件。它允許您在輸入字段內顯示一個掩碼,如「(_)_ -____」,並且只允許輸入數字。要看到我的意思打開頁面http://digitalbush.com/projects/masked-input-plugin/#demo,將焦點設置到電話字段,並嘗試鍵入內容。這不好嗎!

要做到這一點的jqGrid高級搜索對話框內,你應該做以下

  1. 下載jquery.maskedinput-1.2.2.js或/和jquery.maskedinput,1.2.2.min.j來自http://digitalbush.com/projects/masked-input-plugin/
  2. 從這個JavaScript文件中插入一個來自你的網頁。
  3. 添加到您的 '電話號碼' 一欄的定義colModel searchoptions阻止像下面

    {名稱: '******中國',寬度:83,指數: '******中國',對齊: '中心', searchoptions :{ dataInit:function(elem){(elem).mask(「(999)999-9999」); }} }

這一切。現在只需打開「高級搜索對話框」,選擇「電話號碼」字段並在輸入字段中設置焦點。在jqGrid文檔http://www.trirand.com/jqgridwiki/doku.php?id=wiki:search_config&s[]=datainitahttp://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules&s[]=datainit下描述的功能dataInit

順便說一句,您可以在數據編輯(窗體編輯和內聯編輯)期間接收相同的屏蔽輸入。只要定義相同editoptionsearchoption S:

{ name: 'PhoneNumber', width: 83, index: 'PhoneNumber', align: 'center', 
    editoptions: { 
    dataInit: function (elem) { 
     $(elem).mask("(999) 999-9999"); 
    } 
    }, 
    searchoptions: { 
    dataInit: function (elem) { 
     $(elem).mask("(999) 999-9999"); 
    } 
    } 
} 
+0

謝謝你,它的工作,但現在我有另一個問題。 如果我想在anothr字段上使用jquery掩碼,它不會讓我。 該面具僅適用於我定義的第一個字段,但它不會顯示在以下字段中,我什至不能輸入任何內容。第一個領域的焦點仍然「困」。 – oirfc 2010-05-17 19:36:18

+0

你是對的!看起來** jquery.searchFilter.js **在'multipleSearch:true'的情況下有一個bug。有多個編輯字段沒有問題。不幸的是,由於我的主要項目缺乏時間,我現在不能在更多的調查中投入更多的時間。我會在2-3周內回到這個問題。我只能建議你嘗試將此問題作爲jqGrid論壇(http://www.trirand.com/blog/?page_id=393)中的一個錯誤,或嘗試使用另一個插件而不是「Masked Input」插件。對不起,我決定給你寫信息,因此你在接下來的幾天裏不會等待我的快速解決方案。 – Oleg 2010-05-17 23:52:49

+0

嗨奧列格,謝謝你anywya你的答案。我嘗試了其他插件,但沒有一個更接近'Masked Input'。蒙面輸入允許您顯示蒙版,而其他蒙版輸入可在您書寫時應用蒙版。 如果您有任何其他建議,請讓我知道。 – oirfc 2010-05-18 14:16:54