2012-11-27 50 views
1

所以我有一個文件管理器(類似於HFS,如果你們有使用它的話)....無論如何,當爲各種文件操作提交ajax函數時,如果文件名中有撇號('),則工作。它將名稱的整個部分提交到有撇號的地方。Javascript錯誤,文件管理器不能使用帶有撇號的名稱

通常提交一個Ajax功能,它只是運行像

$.post("?mode=section&id=ajax.delete", { 
    filename: selectedFilesAsStr(), 
}); 

這裏是JavaScript的...

function selectedItems() { return $('#files .selector:checked') } 

function selectedFilesAsStr() { 
var a = []; 
selectedItems().each(function(){ 
    a.push(getItemName(this)); 
}); 
return a.join(":"); 
} 

function getItemName(el) { 
if (typeof el == 'undefined') 
    return false; 
// we handle elements, not jquery sets 
if (el.jquery) 
    if (el.size()) 
     el = el[0]; 
    else 
     return false; 
// take the url, and ignore any #anchor part 
var s = el.getAttribute('href') || el.getAttribute('value'); 
s = s.split('#')[0]; 
// remove protocol and hostname 
var i = s.indexOf('://'); 
if (i > 0) 
    s = s.slice(s.indexOf('/',i+3)); 
// current folder is specified. Remove it. 
if (s.indexOf(HFS.folder) == 0) 
    s = s.slice(HFS.folder.length); 
// folders have a trailing slash that's not truly part of the name 
if (s.slice(-1) == '/') 
    s = s.slice(0,-1); 
// it is encoded 
s = (decodeURIComponent || unescape)(s);   
return s; 
} // getItemName 

回答

1

($("#text).val()).replace("'",''');

替換撇號