我有一个循环,它在onClick事件中创建一个带有javascript函数调用的链接,并使用从数据库返回的文本作为参数之一。我遇到的问题是,有时返回的文本中包含括号,导致代码中出现语法错误。 例如:
code:
formResults += "<a onclick='openForm(" + this.displayText + "," + this.ID + ");'>" + this.displayText + "</a>";
HTMLDisplay:
<a onclick="openForm(Example Form (Example Form 1) Application Instructions ,1108);">Example Form (Example Form 1) Application Instructions </a>
正如您所看到的,表单的名称包含一组括号。无论如何我可以包括这些吗?我需要的原因是因为该函数指向另一个使用ID和displayText的系统以呈现正确的形式。 谢谢
答案 0 :(得分:4)
括号不是问题,而是函数内缺少引号。
formResults += "<a onclick='openForm(\'" + this.displayText + "," + this.ID + "\');'>" + this.displayText + "</a>";
以下摘录(来自你的)
`openForm(Example Form...`)
会抛出错误,因为它正在寻找变量Example
等等,引用该字符串!
答案 1 :(得分:2)
我强烈建议
代码:
formResults += '<a class="openForm" data-text="'+this.displayText + '" id="'+this.ID + '">' + this.displayText + '</a>';
HTMLDisplay:
<a class="openForm" data-text="Example Form (Example Form 1) Application Instructions" id="1108">Example Form (Example Form 1) Application Instructions </a>
jQuery的:
$(function() {
$(".openForm").on("click",function(e) {
e.preventDefault();
openForm($(this).data("text"),this.id);
});
});