Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.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 如何修改链接';s href,所以它提交表单_Javascript_Jquery_Html_Node.js_Forms - Fatal编程技术网

Javascript 如何修改链接';s href,所以它提交表单

Javascript 如何修改链接';s href,所以它提交表单,javascript,jquery,html,node.js,forms,Javascript,Jquery,Html,Node.js,Forms,我正在使用EJS制作一个网页模板。每行都有自己的表单和多个表单元素(全部禁用);以图标结尾的行用作链接 我想做的是,当单击该图标时,该图标将变为“勾选”图标,并启用该行上的所有表单元素。到目前为止还不错 但是,在这个转换之后,我希望链接(现在带有一个“勾号”图标)能够在单击时提交表单。我没能做到 我在EJS模板中有一个图标: <a href="#" onclick="adjustActionIcons('<%=i%>')" id="link<%=i%>">&l

我正在使用EJS制作一个网页模板。每行都有自己的表单和多个表单元素(全部禁用);以图标结尾的行用作链接

我想做的是,当单击该图标时,该图标将变为“勾选”图标,并启用该行上的所有表单元素。到目前为止还不错

但是,在这个转换之后,我希望链接(现在带有一个“勾号”图标)能够在单击时提交表单。我没能做到

我在EJS模板中有一个图标:

<a href="#" onclick="adjustActionIcons('<%=i%>')" id="link<%=i%>"><span class="glyphicon glyphicon-pencil" id="editIcon<%=i%>"></span></a>

如何更改由表单提交函数/触发器替换的href属性?或者任何其他方法来实现相同的目标?

据我所知,您可以在元素上扩展
onclick
功能,并在其旁边放置一个隐藏的提交按钮,然后像这样修改代码:

<a href="#" onclick="adjustActionIcons('<%=i%>');$(this).next().trigger('click');" id="link<%=i%>"><span class="glyphicon glyphicon-pencil" id="editIcon<%=i%>"></span></a>
<button type="submit" style="display:none"></button>

如果您仍在努力,可能会将标记显示到实际表单

在单击处理程序中调用表单提交方法…?添加setTimeout函数以提交表单(例如表单的id为id\u frm,然后是document.getElementById('id\u frm').submit())。这样,转换和提交函数可以异步工作。谢谢,我粘贴了代码,但是编辑器在单词“function”后显示了“identifier expected”-用作“function test()”也做了一些更改adjustActionIcons的函数根本不被调用。(使用原始版本和我的一些变体)我遗漏了什么?我编辑了答案,
函数(){}
调用完全错误。我的错。不过,剩下的部分应该会起作用。保持我的状态很幸运,它不会按原样工作:在第一次单击图像更改并启用元素后,但在紧接着,所有内容都会重置。我在函数调用之后添加了“returnfalse;”,这似乎停止了立即的更改。但是,新链接仍然没有提交表单。我会在这方面做更多的工作,并希望回来的结果…最新的版本也没有工作。我意识到在一个页面上做任何事情对我来说都太复杂了,尤其是使用这些模拟提交。我已经将视图和编辑移动到单独的页面,我实现了我的目标。然而,我相信我最初尝试做的是专业网站正在做的事情,对吗?谢谢你的指导
<a href="#" onclick="adjustActionIcons('<%=i%>');$(this).next().trigger('click');" id="link<%=i%>"><span class="glyphicon glyphicon-pencil" id="editIcon<%=i%>"></span></a>
<button type="submit" style="display:none"></button>
$(this).closest('form').submit();