2017-08-01 98 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'));