Javascript HTML输入字符串,onclick函数接受两个参数-不起作用
对不起,如果问题的措辞不好,我真的不知道如何描述它 我有一个按钮,单击该按钮时会执行以下操作:Javascript HTML输入字符串,onclick函数接受两个参数-不起作用,javascript,jquery,html,Javascript,Jquery,Html,对不起,如果问题的措辞不好,我真的不知道如何描述它 我有一个按钮,单击该按钮时会执行以下操作: function Save(id, projectID) { var url = "@Url.Content("~/Config/Detail?id=")" + id + "&projectID=" + projectID; var _options = { area: ['590px', '385px'], content: url
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中):
如果使用item.id
和item.projectID
,我所使用的值6和3是我希望给出的值
最有趣的是,在这两种情况下,HTML在浏览器中呈现相同的内容。结果如下所示:
所以问题肯定出在Save()函数的某个地方,但我不知道在哪里
如果我将Save()函数简化为只取一个参数,它就可以工作(例如,Save(“+item.id+”)
就可以了),因此我认为在处理两个参数时它会出错
非常感谢您的任何意见。请尝试
onclick="save('6','3')"
“在6点之后,发布
试一试
“在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>");
htmlaray.push(
"
");
看起来很愚蠢,但我用过很多次
如果还有其他选择,欢迎!!!
onclick需要在其周围加引号。还要确保“Save()”是全局可用的如果您的问题是多个参数,为什么不只使用一个和威胁项作为对象?这样您就可以传递所有项,而不是破坏项
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.id + ", " + item.projectID + ") />
<input type='button' id='btn-delete' class='form-btn'
value='删除' onclick=Delete(" + item.id + ") />
</td>");
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>");
htmlaray.push(
"
");
我知道这不是你想要的,但这是另一种思维方式,可以进一步帮助你
更新
如果你在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>');
htmlaray.push(
'
');
这里是使用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>`);
htmlaray.push(
`
`);
希望这能对您有所帮助。onclick=“save(6),,3)”=“是问题所在,请修复此问题检查您的控制台了解更多信息我尝试了大量变体,但都不起作用。正如我所说,save(6,3)不起作用,而save(3)很好,所以似乎只有在我输入多个参数时才出现问题。在这种情况下,我使用的唯一附加标点符号是逗号,所以我不知道引号是怎么回事。我是个白痴。昨晚我在发布上一条评论后,用你的建议解决了这个问题,但直到现在我才再次发表评论因为stackoverflow突然变得不可用(可能是因为我在中国…哈)。谢谢你的建议,它成功了,干杯!我已经尝试过了。我尝试过创建一个变量{///saveString=item.id+“,+item.projectID//}然后在输入字符串中使用该单个变量。但是,在浏览器中呈现时,这会产生完全相同的问题结果。它再次显示为{///onclick=“save(6',,3)”=”“//}。最有趣的是,当我调用{///alert(saveString)//}它打印了6,3,所以这部分是正确的。@StuartAitken我做了一个更新。也许如果你更改了一些引号,你就可以实现你的目标。现在一切都解决了,是的,这是引号的问题。干杯!@StuartAitken Happy可以帮助你!祝你以后的项目好运!:)
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.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.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>`);