Помогите с форматированием строки jQuery - PullRequest
0 голосов
/ 07 января 2011

Почему следующее:

$("a").sortable( {
    update:function() {
        var urls = ""; 

        $.map($("a"), function(elt) { 
            urls += "url=" + elt.href + "&";
        });

        $.ajax( {
            url: 'server_side_process_one.aspx',
            type: 'POST',
            data: { urls.substr(0,urls.length - 1) },
            success: function() { alert(urls.substr(0,urls.length - 1)); }
        });
    }
});

возвращать пути в следующем формате:

Файл: /// C: /Program%20Office/OFFICE11/WINWORD.EXE

но следующее:

$("input:checkbox").live('change', function() { 
    var that = this;

    $.ajax({
        url: 'server_side_process_two.aspx',
        type: 'POST',
        data: { $(that).attr("id") },
        success: function() { alert($(that).attr("id")); }
    });
}); 

возвращает путь в следующем формате:?

C: \ Program Files \ Microsoft Office \ Office11 \ WINWORD.EXE

Есть идеи, как заставить обе функции возвращаться в одном формате? Предпочтительно оба должны возвращаться в основном формате без всех дополнительных символов, т.е.

C: \ Program Files \ Microsoft Office \ Office11 \ WINWORD.EXE

но не

Файл: /// C: /Program%20Office/OFFICE11/WINWORD.EXE

Ответы [ 2 ]

1 голос
/ 07 января 2011

Это может просто "исправить" вашу проблему, но вы можете просто позволить верхней функции C #
вернуть "file: /// C: /Program%20Office/OFFICE11/WINWORD.EXE" ... и затем исправьте форматирование.


string sRtn = "file:///C:/Program%20Office/OFFICE11/WINWORD.EXE";
sRtn = sRtn.Replace("file:///", "");
sRtn = sRtn.Replace("/", "\");
sRtn = sRtn.Replace("%20", " ");

1 голос
/ 07 января 2011

Когда вы запросите href элемента, вы получите версию этого атрибута, обработанную и очищенную браузером.Таким образом, это действительно зависит от того, что делает ваш сценарий aspx, но убедитесь, что URL-адрес, который вы передаете сценарию через strURLs, имеет соответствующий URI, такой как file:///C:/Program%20Office/OFFICE11/WINWORD.EXE, а не неправильный и неправильно сформированный URL, такой как C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE.

Не забывайте, что вы можете видеть, что вы отправляете в свой скрипт, используя такие инструменты, как FireBug в Firefox.

Удачи!

...