2012-03-10 12 views
1

セレクトメニューの中からhttps://github.com/fnagel/jquery-ui各オプションのタイトルを設定してアイコンとして表示します。ファイル名に空白が含まれているアイコンを除いて正常に動作します。どのように脱出する - 私はそれがjQueryの内部の作業を取得することはできませんよ場合jQueryエスケープの空白

<option value="African Union.png" class="icon" title="/img/icons/flags/African Union.png" >African Union</option> 

 $('select.flags').selectmenu({ 
      icons: [ 
       {find: '.icon'} 
      ], 
      bgImage: function() { 
       return 'url(' + $(this).attr("title") + ')'; 
      } 
     }); 

HTML:ファイル名がAfrican Union.png

jqueryのようなものでない場合は、アイコンは表示されません空白はPHPを使用して? str_replaceは唯一のオプションですか?

+0

? –

答えて

1

URLs in CSSは引用符で囲まれていないか、単一引用符または二重引用符で引用されたのいずれかとすることができます。引用符で囲まれていない場合は、あなたの場合のように、あなたが特定の文字をエスケープする必要があります。

一部の文字は、括弧、空白文字、単一引用符(')と二重引用符(")として、引用符で囲まれていないURIでなければなりません登場します結果のURI値がURIトークン '\('、 '\)'になるようにバックスラッシュでエスケープしてください。

ので:

'url(' + $(this).attr("title").replace(/(?=[()\s'"])/g, '\\') + ')' 

それとも、引用符でURLを入れて、plain single quotes are allowed in URLsとして好ましくは二重引用符:あなたがPHPを使用した

'url("' + $(this).attr("title") + '")' 
0

は、それはホワイトスペースなどの特殊文字を削除します。この1

$("#text_box_id").change(function() { 
var name = $(this).val(); 
var dname_without_space = $("#text_box_id").val().replace(/ /g, ""); 
var name_without_special_char =  dname_without_space.replace(/[^a-zA-Z 0-9]+/g, ""); 
$(this).attr("value", name_without_special_char); 
}); 

を試してみてください。

http://patelmilap.wordpress.com/2011/08/17/using-jquery-remove-space-special-characters-while-typing/

1

使用urlencodeこの記事を参照してください。最初にURLにスペースを入れることはできません。

$filename = "African Union.png"; 
$url = urlencode($filename); 
$html_safe_url = htmlspecialchars($url); 

echo "<option value='$html_safe_url' class='icon' title='/img/icons/flags/$html_safe_url'>African Union</option>