2017-05-31 55 views
0

我的网页,我正与EJS模板化的工作。每行都有自己的形式和一些表单元素(全部禁用);行以图标结尾作为链接。如何修改链接的href所以它提交表单

我想要做的是点击该图标时,图标变为“打勾”图标,并使该行上的所有表单元素被启用。到目前为止这么好...

但是,在这个转换之后,我希望链接(现在有一个'勾号'图标)能够提交表单,如果点击。我没有这样做。

如果我在EJS模板的图标:

function adjustActionIcons(id) { 
document.getElementById("dropDown" + id).removeAttribute("disabled"); 
document.getElementById("Text" + id).removeAttribute("disabled"); 
document.getElementById("editIcon" + id).className = "glyphicon glyphicon-ok"; 
// ????? 
} 

我怎样才能改变一个形式代替href属性提交功能/触发器:

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

点击后调用的函数?或者其他方法来实现相同的目标?

+1

呼叫的形式提交您的单击处理方法......? – CBroe

+0

添加setTimeout函数来提交表单(例如表单的id是id_frm,然后是document.getElementById('id_frm')。submit())。这样,转换和提交功能可以异步工作。 – liyj144

回答

0

从我所知道的,你可以在你的元素扩展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> 

这将提交表单的锚标签分别位于。

PS:作为一种替代方法,您也可以找到最接近的表单元素并在其上调用提交触发器。让我知道你是否需要这些信息。

编辑:更换一个符合

$(this).closest('form').submit(); 

如果你还在苦苦或许显示标记起来,直到实际的形式。

+0

谢谢,我粘贴了代码,但是编辑器在'function'后面显示'identifier expected' - 用作'function test()'也做了一些修改。 'adjustActionIcons'函数根本不被调用。 (使用原版,也在我的一些变体中)我错过了什么? – Ben77

+0

我编辑了答案,function() {}调用是完全错误的。我的错。其余的应该工作。保留我的发帖 – Terrance00

+0

不幸的是,它不能正常工作:在第一次点击图像变化和元素启用后,但立即之后,一切都被重置。我添加了“返回false”;函数调用后似乎停止立即改变。但是,新链接仍未提交表单。我会更努力地工作,并希望回来的结果... – Ben77