帮助jQuery字符串格式化

时间:2011-01-07 14:52:34

标签: javascript jquery-ui jquery jquery-ui-sortable

为什么会这样:

$("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   办公室\ OFFICE11 \ WINWORD.EXE

知道如何让两个函数以相同的格式返回吗?最好两者都应以基本格式返回,而不是所有额外的字符,即

  

C:\ Program Files \ Microsoft   办公室\ OFFICE11 \ WINWORD.EXE

但不是

  

文件:/// C:/Program%20Office/OFFICE11/WINWORD.EXE

2 个答案:

答案 0 :(得分:1)

当您要求元素的href时,您将获得该属性的一个版本,由浏览器处理和清理。因此,它实际上取决于您的aspx脚本的功能,但请确保您通过strURLs传递给脚本的URL是适当的URI,如file:///C:/Program%20Office/OFFICE11/WINWORD.EXE,而不是错误的格式错误的网址,例如C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE

不要忘记,您可以使用Firefox中的FireBug等工具查看您发送到脚本的内容。

祝你好运!

答案 1 :(得分:1)

这可能只是“修补”你的问题,但你可能只是让上面的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", " ");