我收到错误
无效的正则表达式标志
点击它时从编辑按钮。但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>
答案 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假设它是一个正则表达式,因此错误