访问html表单JavaScript中文本输入字段值的最简单方法?

Posted

技术标签:

【中文标题】访问html表单JavaScript中文本输入字段值的最简单方法?【英文标题】:Simplest way to access the value of text input field in html form JavaScript? 【发布时间】:2020-07-08 23:35:27 【问题描述】:

我想通过 javascript 尽可能简单地访问输入字段值。

<form name="F">
  <input name="searchTxt" type="text" id="searchTxt">
</form>

我可以使用以下方法访问该值(在 Firefox 调试器上测试):

document.F.searchTxt.value

但我发现此方法是 Internet Explorer 的一种方言(并且适用于大多数浏览器以实现兼容性),并且在 W3C DOM 上已过时。 (参考:Using the W3C DOM - Archive of obsolete content | MDN)

我发现的另一种方法是使用 formselements 属性及其子名称:

document.forms.F.elements.searchTxt.value

我喜欢这种方法,我觉得它很简单,因为它不需要任何括号或引号,而只需要语句中的点。 (参考:Obtaining References to Forms and Form Elements in JavaScript - Dynamic Web Coding)

我认为这种方法的秘密在于form 有它的name(而不是id),所以可以通过它的简单名称来访问它。

请告诉我更简单、更稳定或访问字段值的最佳方法。

【问题讨论】:

没有最好的方法,这完全取决于您的用例和您使用的库。例如,使用 jquery,它是一个单行 - $("form").serializeArray(),您可以在单个数组中获取所有字段和值 谢谢,是的,最好的取决于用例。我正在研究最容易理解的东西。 【参考方案1】:

您可以使用document.querySelector 访问表单的 DOM 元素,它具有您需要的所有属性:

const form = document.querySelector('form');
console.log(form.elements.searchTxt.value);

【讨论】:

谢谢,document.querySelector() 返回第一个表单(或匹配元素)。 如果页面上有多个表单并希望使用此方法访问它们,您可以为每个表单添加idclass,并分别使用document.querySelector('#form-id')document.querySelector('.form-class')【参考方案2】:
let searchTxt= document.forms["F"]["searchTxt"].value;

【讨论】:

这个答案对解决 OP 的问题有什么作用? @dhamkith,谢谢。你知道document.forms["F"]["searchTxt"]document.forms["F"].elements["searchTxt"] 哪个更安全或相同吗?

以上是关于访问html表单JavaScript中文本输入字段值的最简单方法?的主要内容,如果未能解决你的问题,请参考以下文章

使用 JavaScript 和 EJS 获取 HTML 标记的内部文本并作为值传递给输入字段

如何从另一个输入文本字段Javascript中输入的值将值设置为输入隐藏字段

如何在同一个 html 表单中有不同的输入文本样式?

添加到 HTML 表单而不会丢失 Javascript 中的当前表单输入信息

使用 JavaScript 向表中添加新行时重置输入字段

在javascript的输入数字类型字段中输入值时如何显示输入文本字段?