点击链接后发送表单
点击链接后发送表单
我有一个 HTML 表单,我想使用链接来提交它。表单必须发送到链接的 href 属性中。这是我的想法:
将点击事件设置到链接的标签上,执行以下操作:
- 阻止默认操作,即跟随链接。
- 通过将 action 设置为链接的 href,编辑表单。
- 使用 jQuery 的 submit() 函数提交表单。
我正在寻找一种解决方案,不需要更改我的 HTML,只需要使用 JavaScript。
我尝试了这个,但它不起作用。这是我的代码:
JavaScript:
jQuery('.row_header').find('td').each(function(){ var cell = jQuery(this); cell.find('a').each(function(){ //获取单元格中的最后一个链接。只有一个链接 linkObject = jQuery(this); }); //获取表单 var form = jQuery('#searchForm'); if(typeof linkObject !== 'undefined'){ //获取表单的位置 URL var url = linkObject.attr('href'); linkObject.click(function(e){ //阻止默认操作(跟随链接) e.preventDefault(); //将链接的位置设置为表单的动作 form.attr('action',url); //提交表单 form.submit(); }); } });
HTML:
链接 |
问题出现的原因是想要使用一个普通的链接来提交表单,但是添加了submit()方法后无法正常工作。
解决方法是使用JavaScript来实现链接提交表单的功能。可以参考第二个链接中的方法,通过在链接的点击事件中调用表单的submit()方法来提交表单。
以下是解决方法的代码示例:
Submit form
以上代码中,我们首先给表单添加了一个id属性,这样我们就可以通过JavaScript获取到表单元素。然后我们在链接的onclick事件中调用了表单的submit()方法来提交表单。最后的return false;是为了阻止链接的默认行为,即不跳转到链接的目标页面。
通过以上方法,我们可以在点击链接时触发表单的提交操作,实现使用普通链接来提交表单的效果。
问题的出现的原因:
代码中的链接对象(linkObject)未被定义。
解决方法:
1. 在第2行的上方添加 var linkObject;
来定义链接对象。
2. 更改 a
元素的属性,使其具有 data-href1=' your link'
属性,并将 href
属性设置为 #
。修改后的 a
元素应该如下所示:
<a href='#' data-href1 ='your link'> click </a>
3. 避免使用 #
,因为它可能会强制网页返回顶部。可以使用 href='javascript:void(0)'
来替代。
4. 如果不想更改HTML,可以将链接对象定义在第2行的上方,但如果这样做仍然无效,则需要考虑修改HTML。
最终解决方案应该是将链接对象定义在代码中,并将 a
元素的属性修改为正确的格式,使其能够在点击后发送表单。