2012-01-11 63 views
5

我正在使用除listmenu之外正在工作的uniformjs表單控件。當我在列表菜單中添加'&'符號(&)時,它呈現正確,但是當我將值更改爲不同值並再次選擇具有&符號的值時,問題即將到來,因爲它代表&而不是'&'符號列表菜單。 enter image description here在jquery unformjs中需要幫助選擇菜單'&'字符編碼

enter image description here

<select> 
<option>Through &amp; Google</option> 
<option>Through Twitter</option> 
<option>Other&hellip;</option>   
<option>&lt;Hi&gt;</option> 
</select> 

http://uniformjs.com/#example

誰能告訴我是什麼問題..

+0

&符號是否作爲標記中的實體進行重新表示? ''? – 2012-01-11 09:26:31

+0

@Didier G.我沒試過兩種方式,但兩者的問題依然保留.. – Ravi 2012-01-11 09:27:46

回答

3

我認爲這個問題可能來自這條線(source - 線185):

spanTag.text(elem.find(":selected").html()); 

如果你有以下的html:

<select> 
    <option>One &amp; Two</option> 
    <option>One & Two</option> 
</select> 
  1. 插件獲取做elem.find(":selected").html()

    兩個選項元素將返回該值越來越HTML時該內容HTMLOne &amp; Two 特殊字符由html實體代表(&amp;代表&,在我們的示例中)

  2. 然後插件應用此結果作爲使用spanTag.text(<html>);

    所以HTML實體沒有得到解析文本&amp;顯示爲&amp;

fiddle說明它。

我不認爲有是一個解決方案,除了不使用特殊字符,如& ...

4

據Didler,爲什麼不修改uniformjs一點點?

我最近遇到了同樣的情況,並感謝Didler指出確實的線節省了我堆積如山的位置。

就我而言,我有一個選擇與值由特殊字符,如:

<option>aaa</option> 
<option><a>bbb<br>ddd<hr>ccc</option> 

所以,我修改管線185的代碼:它解決了

spanTag.text(elem.find(":selected").text()); 

問題是,當呈現它的值是正確的形狀。

在op的情況下,我不確定您正在使用哪種服務器端語言,但是肯定有一種方法可以在生成html頁面之前轉義選項中的文本,以便在html中沒有&amp;,但字符本身。 我正在使用Java,因此我可以簡單地使用JSTL <c:out value="${******}"/>將值放入選項標記中。

+0

我使用冷聚變生成此選項 – Ravi 2012-02-29 07:04:18

4

有一個拉動請求(130)更新了4行代碼(第173,185,212和569行),因此它們使用.text()而不是使用.html()。我看到的兩個後來拉請求似乎並沒有更新所有4行。

如果您要更新的精縮版,以及,你可以搜索這兩個片段:

  • l.html(n.html()(X1 - 改變 'HTML' 的第二個實例)
  • :selected").html((X3 - 僅更改'html'的實例)
+0

這是一個很好的建議@詹姆斯,爲此工作我!謝謝。 – 2015-05-03 21:31:29