2017-08-01 52 views
0

我使用JQuery來提交表單數據。在我的一些字段中,允許使用撇號。在服務器端我有驗證,我注意到這是失敗的。在我用撇號的一個論點輸出了值之後,我看到了引號之間的差異。下面是例子:如何用撇號字符替換serialize()表單字段JQuery/Ajax?

'D’Ambrosio' 

正如你可以看到在前面和後面D信的那場我的參數值來了我對輸出輸入的測試,但一個單引號/撇號結束單引號。我想知道如何解決這個問題?有沒有辦法阻止這種轉換?這裏是我的Ajax調用:

var formData = $('#'+frmID).serialize(); 

$.ajax({ 
    type: 'POST', 
    url: 'Components.cfc?method='+frmID, 
    data: formData, 
    dataType: 'json' 
}).done(function(obj){ 
    if(obj.STATUS === 200){ 
     //Here I handle response 
     return true; 
    }else{ 
     return false; 
    } 
}).fail(function(jqXHR, textStatus, errorThrown){ 
    alert(errorThrown); 
}); 

這裏是比如我連載的數據:

frm_lname John' 
frm_fname Boozer 
frm_dob 08/01/2010 
+0

如果它只是撇號字符速戰速決將是序列化到FORMDATA變量之後簡單地逃脫字符。只是做一個簡單的formData.replace(「'」,「\'」) – zfrisch

+0

@zfrisch我已經嘗試過,但提交後的表單報價/撇號仍然不同。 –

+0

好的。你能否給我們一些虛擬的序列化表單數據來處理? – zfrisch

回答

0

之前,你把你的數據,你可以編碼你的字符串,然後將它們在服務器上進行解碼。這將有助於保留任何「魔術」/保留字符,如引號。

alert(encodeURIComponent('D’Ambrosio'));