生成按钮

时间:2017-02-01 03:13:07

标签: javascript jquery

我收到错误

  

无效的正则表达式标志

点击它时从编辑按钮。但HTML输出似乎很好

/* EDIT */ {
    mRender: function (data, type, row) {
        var directlink = '/Products/edit/' + row.ArticleID;
        return "<button type='button' class='btn btn-sm btn-primary' onclick='location.href=" + directlink + "'><i class='fa fa-pencil-square-o'> </i> Edit</button>"

来自JavaScript的生成按钮

<button type="button" class="btn btn-sm btn-primary" onclick="location.href=/Products/edit/11"><i class="fa fa-pencil-square-o"> </i> Edit</button>

2 个答案:

答案 0 :(得分:4)

错误在代码onclick='location.href=" + directlink + "'中。这里,为location.href分配了一个RegEx(请注意,正则表达式文字语法使用/作为分隔符。)

此处,/Products/edit/11被视为正则表达式/Products/edit作为正则表达式标志,它们是无效标志(i除外)。

要解决此问题,可以将URL的值简单地包含在引号内。由于已使用单引号和双引号,因此需要转义引号。

onclick='location.href=\"" + directlink + "\"'

如果目标环境支持EcmaScript 6模板文字,则可以使用

return `<button ... onclick='location.href="${directlink}'>...</button>`;

因为,您正在使用jQuery,我建议使用它来创建新元素并在其上绑定事件。

答案 1 :(得分:2)

查看生成的按钮,您在onclick处理程序

中的分配中缺少字符串的引号

所以不要这样:

onclick="location.href=/Products/edit/11"

应该是这样的:

onclick="location.href='/Products/edit/11'"

由于文字正则表达式使用/ javascript假设它是一个正则表达式,因此错误