当前位置: 首页 > 面试题库 >

如何通过单击链接使用JavaScript提交表单?

萧鹏云
2023-03-14
问题内容

我有一个链接而不是“提交”按钮:

<form>

  <a href="#"> submit </a>

</form>

单击后可以提交表单吗?


问题答案:

最好的方式

最好的方法是插入适当的输入标签:

<input type="submit" value="submit" />

最好的JS方式

<form id="form-id">
  <button id="your-id">submit</button>
</form>



var form = document.getElementById("form-id");

document.getElementById("your-id").addEventListener("click", function () {
  form.submit();
});

由封闭后的JavaScript代码DOMContentLoaded事件(只选择load了向后兼容性如果你还没有这样做:

window.addEventListener("DOMContentLoaded", function () {
  var form = document.... // copy the last code block!
});

简单而不可取的方式(以前的答案)

onclick在链接和id表单中添加一个属性:

<form id="form-id">

  <a href="#" onclick="document.getElementById('form-id').submit();"> submit </a>

</form>

所有方式

无论选择哪种方式,formObject.submit()最终都可以调用(标记formObject的DOM对象在哪里<form>)。

您还必须绑定这样的事件处理程序,该事件处理程序调用formObject.submit(),因此在用户单击特定的链接或按钮时将调用该事件处理程序。有两种方法:

  • 推荐: 将事件侦听器绑定到DOM对象。
// 1. Acquire a reference to our <form>.
//    This can also be done by setting <form name="blub">:
//       var form = document.forms.blub;

var form = document.getElementById("form-id");


// 2. Get a reference to our preferred element (link/button, see below) and
//    add an event listener for the "click" event.
document.getElementById("your-id").addEventListener("click", function () {
 form.submit();
});

  • 不推荐: 插入内联JavaScript。有几种原因导致不推荐使用此技术。一个主要的论点是将标记(HTML)与脚本(JS)混合在一起。该代码变得杂乱无章,难以维护。

    <a href="#" onclick="document.getElementById('form-id').submit();">submit</a>
    

现在,我们到了必须确定触发Submit()调用的UI元素的地步。

  1. 一个按钮

    <button>submit</button>
    
  2. 一条链接

    <a href="#">submit</a>
    

应用上述技术以添加事件侦听器。



 类似资料:
  • 问题内容: 我有一个ID为ID的表单,该表单具有以下div,其中包含一个Submit按钮: 单击后,将调用该函数。该函数将上述div的innerHTML更改为“ processing …”(因此,提交按钮现在消失了)。 上面的代码有效,但是现在的问题是我无法提交表单!我试着把它放在函数中: 但这是行不通的。 我该如何提交表格? 问题答案: 将表单的属性设置为,代码即可正常工作。

  • 问题内容: 我想使用JSoup将一些文本提交到此表单中。我将如何去做呢? 问题答案: 看一下jsoup.connect方法和Connection接口。 准备好要提交的文本后,可以将其作为表单提交发布到URL。 例如: 返回的对象将是帖子的结果页面。

  • 我的代码有问题吗??请告诉我错误在哪里。或者也许有人可以用JavaScript解决它??

  • 我有一个html链接

  • 本文向大家介绍PHP如何通过表单直接提交大文件详解,包括了PHP如何通过表单直接提交大文件详解的使用技巧和注意事项,需要的朋友参考一下 前言 我想通过表单直接提交大文件,django 那边我就是这么干的。而对于 php 来说,我认为尽管可以设置最大上传的大小,但最大也无法超过内存大小,因为它无法把文件内容都放到 php://input 里面。直到我试了一下。 下面话不多说了,来一起看看详细的介绍吧

  • 问题内容: 我正在尝试使用phantomJS(真棒的工具!)为具有登录凭据的页面提交表单,然后将目标页面的内容输出到stdout。我可以使用幻像访问该表单并成功设置其值,但是我不太确定提交表单并输出后续页面内容的正确语法。到目前为止,我有: 问题答案: 我想到了。基本上,这是一个异步问题。您不能只是提交并期望立即呈现下一页。您必须等到触发下一页的onLoad事件。我的代码如下: