2014-12-02 46 views
1

我需要在引導程序typeahead框中使用HTML,以允許我縮進項目。在引導程序中使用typeahead - 如何清理文本輸入框的html

爲了得到這樣的:

頂級-項目
     縮進項目
下個產品(不縮進)

我通過把HTML在我的預輸入做到這一點數據源如下:

var ajaxData = {json: JSON.stringify(["Top-Level-Item<br />&nbsp;&nbsp&nbsp;Indented Item","Next Item (Unindented)"])}; 

這樣可以在你得到的前面「下拉式」框中正​​常工作,但是當單擊包含HTML的結果時,帶有可讀HTML標記的結果將放入文本輸入元素中。

看到下方的的jsfiddle這說明我的意思(開始鍵入「阿拉巴馬」看到它與HTML的結果):http://jsfiddle.net/mc0oocj4/

什麼是解決它的最好方法?我正在考慮在更新文本框之前清理HTML,但我不知道如何完成此操作(文本框的更新通過Bootstraps內部廚房進行,我寧願不要惹惱...)

歡迎其他/更好的想法!

回答

1

你可以做這樣的事情

$('.typeahead').on('change', function (e) { 
    this.value = this.value.replace(/<(?:.|\n)*?>/gm, '').replace(/&nbsp;/gm,''); 
}); 

工作撥弄 http://jsfiddle.net/mc0oocj4/3/

+0

謝謝!實際上,儘管如此,但我認爲'.on('change')'代碼在正常情況下在文本框中輸入時也會被觸發,並且弄亂了用戶輸入,現在我發現只有當用戶在框中鍵入HTML,在這種情況下,它實際上是一件好事。 – Alex 2014-12-02 16:16:05

+0

您是否看到在輸入html代碼的字符(如nbsp中的n)時,下拉列表中的html文本? – toggm 2016-03-23 14:05:39

相關問題