2016-07-05 66 views
0

我生成了用于选择或取消选择我的数据的自定义复选框。我有2个自定义函数用于选择和取消选择数据。在select方法中,我需要传递2个变量,它是字段值。将特殊字符的动态字符串变量传递给JQuery函数

我的代码:

<span custom-checkbox="true" 
is-checked="false" 
name="id" 
data-val="{this.id}" 
on-select="DataSelect('{this.id+'\',\'' +this.name}')" 
on-unselect="DataUnselect('{this.id}')" id="{this.id}"> 
</span> 

function DataSelect(id, value){ 
    console.log(id); 
    console.log(value); 
    //my code 
} 

function DataUnselect(id, value){ 
    //my code 
} 

问题:

名称字段包含特殊字符,如引号( '')。以下是样本数据;

id = "1"; 
name= "hey'len"; 

在这里我得到了问题,由于报价(')。所以数据被操纵为;

DataSelect('1', 'hey'len') 

,所以我就为 “未捕获的语法错误:缺少)后的参数列表”。

请帮我解决这个

+0

试试这个name.replace( “\ ' ”G“,\\'”) –

+0

请帮助方法本身进行更新。在html dataselect中 – Akhil

+1

你能否提供一点信息。因为它看起来像不能单独使用jquery(在HTML中处理'{..}')。 –

回答

1

可以使用.replace()

id = "1"; 
name= "hey'len"; 
name.replace('\'', '\\\''); 
+0

嗨,如果名字中有多个引号,那就失败了。请帮忙 – Akhil

0
id = "1"; 
name= "hey'len"; 
name.replace('\''g, '\\\''); 

使用逃避串引号这将取代的(')所有的次数。它也适用于“hey'len'new'something”。

试试看

+0

我需要这个,包括多次发生。但这是行不通的 – Akhil

+0

我通过使用.replace(/'/ g,'\\\'')更正 – Akhil

+0

@Akhil这很棒 –

相关问题