如果问题措辞不好,我很抱歉,我不确定如何描述。
我有一个按钮,点击后会执行此操作:
function Save(id, projectID) {
var url = "@Url.Content("~/Config/Detail?id=")" + id + "&projectID=" + projectID;
var _options = {
area: ['590px', '385px'],
content: url
}
tools.openTopPage(_options);
};
如果我在第二行手动输入id
和project ID
的值,则可以正常输入,因此我知道此功能没有问题。
但是,当从输入字符串调用该函数时,它不起作用。
字符串在这里(放入htmlArray):
htmlArray.push(
"<td class='text-center'>
<input type='button' class='form-btn' value='修改'
onclick=Save(" + item.id + ", " + item.projectID + ") />
<input type='button' id='btn-delete' class='form-btn'
value='删除' onclick=Delete(" + item.id + ") />
</td>");
我认为问题是由于输入字符串断开的方式以及将变量item.id
和item.projectID
放入Save()函数,但是如果我保留它就不会起作用很简单。例如,以下内容不起作用:
htmlArray.push(
"<td class='text-center'>
<input type='button' class='form-btn' value='修改'
onclick=Save(6, 3) />
<input type='button' id='btn-delete' class='form-btn'
value='删除' onclick=Delete(" + item.id + ") />
</td>");
我使用的值6和3是使用item.id
和item.projectID
时我希望给出的值。
最有趣的是,在两种情况下,HTML在浏览器中呈现相同的内容。结果如下:
所以问题肯定在Save()函数周围,但我不知道在哪里。
如果我简化Save()函数只采用一个参数就可以了(例如"Save(" + item.id + ")"
可以正常工作),所以这就是让我相信它在处理两个参数时搞砸的原因
任何输入都非常感谢,谢谢。
答案 0 :(得分:5)
尝试
onclick="save('6','3')"
6之后“,提出问题
尝试
onclick="save('6','3')"
6之后“,提出问题
“和'在JavaScript中出现问题
最后一个选项是:
var parameters=String("'" + item.id + "','"+item.projectID+"'");
将其用作
htmlArray.push(
"<td class='text-center'>
<input type='button' class='form-btn' value='修改'
onclick=Save("+parameters+") />
<input type='button' id='btn-delete' class='form-btn'
value='删除' onclick=Delete(" + item.id + ") />
</td>");
看起来很愚蠢,但我多次使用它。
如果有其他选择,欢迎!!!
答案 1 :(得分:1)
https://jsfiddle.net/6h73pxcv/
<input type='button' class='form-btn' value='修改' onclick="Save(6, 3)" />
onclick需要有引号。还要确保“保存()”全局可用
答案 2 :(得分:1)
如果你的问题是多参数,为什么不只使用一个和威胁项作为对象?因此,不要破坏项目,而是可以传递所有内容。
function Save(item) {
var url = "@Url.Content("~/Config/Detail?id=")" + item.id + "&projectID=" + item.projectID;
var _options = {
area: ['590px', '385px'],
content: url
}
tools.openTopPage(_options);
};
并在htmlArray中:
htmlArray.push(
"<td class='text-center'>
<input type='button' class='form-btn' value='修改'
onclick=Save(" + item + ") />
<input type='button' id='btn-delete' class='form-btn'
value='删除' onclick=Delete(" + item.id + ") />
</td>");
我知道这不是你想要的,而是另一种思考方式,可以进一步帮助你。
<强>更新强>
也许如果你在htmlArray中切换一些单引号和双引号,你可能会实现你的目标。
htmlArray.push(
'<td class="text-center">
<input type="button" class="form-btn" value="修改"
onclick="Save(' + item + ')" />
<input type="button" id="btn-delete" class="form-btn"
value="删除" onclick="Delete(' + item.id + ')" />
</td>');
答案 3 :(得分:0)
您可以使用ES6
标准
htmlArray.push(
`<td class='text-center'>
<input type='button' class='form-btn' value='修改'
onclick="Save('${item.id}, '${item.projectID}');" />
<input type='button' id='btn-delete' class='form-btn'
value='删除' onclick="Delete('${item.id}');" />
</td>`);
希望这会对你有所帮助。