Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML输入字符串,onclick函数接受两个参数-不起作用_Javascript_Jquery_Html - Fatal编程技术网

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>`);