【问题标题】:How to replace serialize() form fields with apostrophe characters JQuery/Ajax?如何用撇号字符 JQuery/Ajax 替换 serialize() 表单字段?
【发布时间】:2017-08-01 18:20:41
【问题描述】:

我使用 JQuery 提交表单数据。在我的某些领域,撇号是允许的。在服务器端,我进行了验证,我注意到它失败了。在我用撇号从我的一个论点输出值后,我看到了引号之间的差异。示例如下:

'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

【问题讨论】:

  • 如果它只是撇号字符,快速解决方法是在序列化到 formData 变量后简单地转义字符。只需做一个简单的 formData.replace("'","\'")
  • @zfrisch 我已经尝试过,但在提交表单后仍然引用/撇号不同。
  • 好的。你能给我们一些虚拟的序列化表单数据吗?
  • @zfrisch 我用一些表单字段和数据更新了问题。提交序列化表单后数据看起来像这样。
  • 你的谷歌搜索字符串是coldfusion replace curly quotes

标签: javascript jquery ajax serialization coldfusion


【解决方案1】:

在发送数据之前,您可以对字符串进行编码,然后在服务器上对其进行解码。这将有助于保留任何“魔术”/保留字符,如引号。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2021-07-10
    • 2018-05-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    • 2015-07-13
    相关资源
    最近更新 更多