0

我這是爲了顯示與以下變量作爲文本的鏈接視圖:單引號jQuery Mobile的問題引起

<ul data-role="listview" data-inset="true" data-filter="true" data-filter-placeholder="Search ideas..."> 
    <% @ideas.each do |idea| %> 
    <li> 
     <%= link_to(idea.name + " for " + idea.relationship.name, idea_path(idea)) %> 
    </li> 
    <% end %> 
</ul> 

值idea.name(從PG SQL檢索)有一個單引號在裏面。這導致鏈接被點擊時,一個JavaScript的問題:

Uncaught SyntaxError: Unexpected identifier jquery-1.7.1.min.js:2 
e.extend.globalEval jquery-1.7.1.min.js:2 
e.extend.globalEval jquery-1.7.1.min.js:2 
bp jquery-1.7.1.min.js:2 
e.extend.each jquery-1.7.1.min.js:2 
f.fn.extend.domManip jquery-1.7.1.min.js:4 
f.fn.extend.append jquery-1.7.1.min.js:3 
f.each.f.fn.(anonymous function) jquery-1.7.1.min.js:4 
a.mobile.loadPage.a.mobile.allowCrossDomainPages.l.isSameDomain.a.ajax.success jquery.mobile-1.1.0.min.js:58 
f.Callbacks.n jquery-1.7.1.min.js:2 
f.Callbacks.o.fireWith jquery-1.7.1.min.js:2 
w jquery-1.7.1.min.js:4 
f.support.ajax.f.ajaxTransport.send.d 

我曾嘗試使用escape_javascript不提供正確的結果(把一個\的單引號,然後在瀏覽器中呈現的前後鏈接仍然導致錯誤

我使用Rails 3.1,jQuery Mobile的1.1.0和jQuery 1.7.1任何建議表示讚賞

UPDATE:。這裏的反應是什麼樣子呈現在客戶端:

<ul data-role="listview" data-inset="true" data-filter="false"> 
    <li><a href="/ideas/34">toms shoes</a></li> 
    <li><a href="/ideas/32">Toms shoes</a></li> 
    <li><a href="/ideas/35">Remote controlled boat</a></li> 
    <li><a href="/ideas/36">Toms Shoes</a></li> 
    <li><a href="/ideas/33">Tom's shoes</a></li> 
</ul> 

這是最後一個有問題的項目(/ ideas/33)。

+0

@TheBlackBenzKid有趣的,儘管風扇boyish角 – AlphaApp 2012-07-26 11:13:05

+0

:)只是在開玩笑.. – TheBlackBenzKid 2012-07-26 11:13:21

+0

響應看起來像什麼瀏覽器? – nnnnnn 2012-07-26 11:17:07

回答

0

我面臨類似的問題與jQuery的移動。
我下面的HTML:

<ul id="searchPanel" data-role="listview" data-filter="true" class="inputData" data-filter-reveal="true" 
        data-filter-placeholder="I'm looking for..."> 

JQM在DOM渲染此爲:

<input data-type="search" placeholder="I" m="" looking="" for...'="" data-lastval=""> 

我的解決方案是使用」或「,而不是單引號」。
參考https://docs.webplatform.org/wiki/html/entities#HTML_Entities_Table
以下是呈現爲用作撇號接近的比賽或單引號

&lsquo; OR &rsquo; OR &prime; 

:‘或’或′(這三種方法都從一個單引號不同「,但他們看起來所以,作爲一種解決方法,您應該從您從PG SQL獲得的文本中替換單引號,然後選擇上述三個字符中的任意一個作爲替換。