繁体   English   中英

如何通过单击链接javascript提交表单

[英]How to submit a form by clicking a link javascript

目前我正在尝试这样做,以便当用户点击链接时,它通过javascript提交相应的表单。 我使用了document.getElementById(“id”)。submit()作为如何发送表单的基础,所以我的代码在我的理解中应该与它类似。

这是代码:

function run(clickedLink){
clickedLink.id.submit();       //I did it like this since document.getElementById just gets the form id and since link and form have similar id's I thought it would send
}

<form id = 'formId'>
<a href = '#' id = 'formId' onclick = run(this)>Link</a>
</form>

我尝试使用name ='formId',但它仍然没有运行,因为我也想要它。

注意:执行此操作,因为此代码动态迭代并且id得到更新,即formID1,formID2 ......

实现这一目标的更好方法也是受欢迎的

修改您的功能如下

function run(clickedLink){
  clickedLink.parentNode.submit(); // parentNode refers to the form element
}

您不能在同一页面上为多个元素使用相同的ID。 这违反了HTML和DOM规范https://softwareengineering.stackexchange.com/questions/127178/two-html-elements-with-same-id-attribute-how-bad-is-it-really

如果要重用,可以将其更改为class ,或者可以更改其他元素的id本身。 此外,不建议链接提交表格。 他们的工作是导航

尝试这个:

<a href="#" onclick="document.forms[0].v.value='Link1';
document.forms[0].submit();">Link 1</a>

一个基本的东西:

- ID's用于在DOM层次结构中唯一描述元素。 请不要重复。 (这真的很糟糕)

现在回答:

function run(x){
var y=findParentForm(x); /* if Id's aren't Unique */
// If iD's are Unique :- var y=document.getElementById("formId");
y.submit();
}

function findParentForm(elem){ 
/* 
This function will find exact parent form 
even if link or elem is inside <div> or other complex DOM structure
This will Only return the parent <form> of that elemnt 
*/ 
var parent = elem.parentNode; 
if(parent && parent.tagName != 'FORM'){
parent = findParentForm(parent);
}
return parent;
}

<form id='formId' action="Server Side Script" method="GET/POST">
<a href='#' id='formId' onclick ="run(this);">Link</a> <!-- change id of link -->
</form>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM