JQuery избежать пробелов - PullRequest
1 голос
/ 10 марта 2012

Внутри меню выбора из https://github.com/fnagel/jquery-ui Я установил заголовок для каждой опции, которая будет отображаться в виде значка. Работает нормально, кроме значков, имя файла которых содержит пробел. Значок не отображается, если имя файла выглядит как African Union.png

запрос:

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

HTML:

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

Если я не могу заставить его работать внутри jQuery - Как избежать пробелов с помощью php? str_replace единственный вариант?

Ответы [ 3 ]

1 голос
/ 10 марта 2012

Использование 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>
1 голос
/ 10 марта 2012

URL в CSS могут быть без кавычек или заключены в одинарные или двойные кавычки. Если без кавычек, как в вашем случае, вам нужно экранировать определенные символы:

Некоторые символы, появляющиеся в URI без кавычек, такие как круглые скобки, символы пробела, одинарные кавычки (') и двойные кавычки ("), должны экранироваться с обратной косой чертой, чтобы полученное значение URI было URI токен: '\(', '\)'.

Итак:

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

Или вы помещаете URL в кавычки, предпочтительно двойные кавычки, так как допускаются простые одинарные кавычки в URL :

'url("' + $(this).attr("title") + '")'
0 голосов
/ 10 марта 2012

Попробуйте это

$("#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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...