如何使用 JavaScript 获取文本输入字段的值?

IT技术 javascript dom html-input
2020-12-14 16:20:19

我正在使用 JavaScript 进行搜索。我会使用表单,但它会弄乱我页面上的其他内容。我有这个输入文本字段:

<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>

这是我的 JavaScript 代码:

<script type="text/javascript">
  function searchURL(){
    window.location = "http://www.myurl.com/search/" + (input text value);
  }
</script>

如何将文本字段中的值获取到 JavaScript 中?

6个回答

有多种方法可以直接获取输入文本框值(无需将输入元素包装在表单元素中):

方法一:

document.getElementById('textbox_id').value 获取所需框的值

例如, document.getElementById("searchTxt").value;

 

注意:方法 2、3、4 和 6 返回元素的集合,因此使用 [whole_number] 来获取所需的出现次数。对于第一个元素,使用 [0],对于第二个元素,使用1,依此类推...

方法二:

使用 document.getElementsByClassName('class_name')[whole_number].value它返回一个 Live HTMLCollection

例如, document.getElementsByClassName("searchField")[0].value;如果这是您页面中的第一个文本框。

方法三:

使用document.getElementsByTagName('tag_name')[whole_number].value它也返回一个实时的 HTMLCollection

例如, document.getElementsByTagName("input")[0].value;如果这是您页面中的第一个文本框。

方法四:

document.getElementsByName('name')[whole_number].value 这也 > 返回一个实时 NodeList

例如, document.getElementsByName("searchTxt")[0].value;如果这是您页面中第一个名为“searchtext”的文本框。

方法五:

使用强大document.querySelector('selector').value的 CSS 选择器来选择元素

比如 document.querySelector('#searchTxt').value;select by id
document.querySelector('.searchField').value;selected by class
document.querySelector('input').value;selected by tagname
document.querySelector('[name="searchTxt"]').value;selected by name

方法六:

document.querySelectorAll('selector')[whole_number].value 它也使用 CSS 选择器来选择元素,但它将所有具有该选择器的元素作为静态节点列表返回。

比如 document.querySelectorAll('#searchTxt')[0].value; select by id
document.querySelectorAll('.searchField')[0].value;selected by class
document.querySelectorAll('input')[0].value; selected by tagname
document.querySelectorAll('[name="searchTxt"]')[0].value;selected by name

支持

Browser          Method1   Method2  Method3  Method4    Method5/6
IE6              Y(Buggy)   N        Y        Y(Buggy)   N
IE7              Y(Buggy)   N        Y        Y(Buggy)   N
IE8              Y          N        Y        Y(Buggy)   Y
IE9              Y          Y        Y        Y(Buggy)   Y
IE10             Y          Y        Y        Y          Y
FF3.0            Y          Y        Y        Y          N    IE=Internet Explorer
FF3.5/FF3.6      Y          Y        Y        Y          Y    FF=Mozilla Firefox
FF4b1            Y          Y        Y        Y          Y    GC=Google Chrome
GC4/GC5          Y          Y        Y        Y          Y    Y=YES,N=NO
Safari4/Safari5  Y          Y        Y        Y          Y
Opera10.10/
Opera10.53/      Y          Y        Y        Y(Buggy)   Y
Opera10.60
Opera 12         Y          Y        Y        Y          Y

有用的链接

  1. 要查看这些方法对所有错误的支持,包括更多详细信息,请单击此处
  2. 静态集合和实时集合之间的区别单击此处
  3. NodeList 和 HTMLCollection 的区别点击这里
@FabrícioMatté 我刚刚在这里查看了quirksmode.org/dom/tests/basics.html#querySelectorAll,它告诉我它没有
2021-02-19 16:20:19
据我所知,IE8支持 QSA,它只是不支持选择器字符串中的 CSS3 选择器。
2021-02-21 16:20:19
非常有用的文档,保存以供参考。谢谢。
2021-02-26 16:20:19
@calyxofheld 使用forEach或 for 循环所有这些。这是JS中非常基础的东西。如果没有,你有没有简单地浏览过 JS?那么我会建议你先经历一下。保持学习
2021-02-26 16:20:19
@GKislin 啊!我知道了。很高兴我不知道它。但是在阅读完这篇文章后,我现在不太情愿将此编辑添加到答案中。也许有一天,我会添加一个警告以避免它。警告的所有原因之一就是这个如果您觉得它真的很好,那么要么使用警告进行编辑,要么根据您的意愿添加另一个答案:)
2021-03-02 16:20:19
//creates a listener for when you press a key
window.onkeyup = keyup;

//creates a global Javascript variable
var inputTextValue;

function keyup(e) {
  //setting your input text to the global Javascript Variable for every key press
  inputTextValue = e.target.value;

  //listens for you to press the ENTER key, at which point your web address will change to the one you have input in the search box
  if (e.keyCode == 13) {
    window.location = "http://www.myurl.com/search/" + inputTextValue;
  }
}

在 codepen 中查看此功能。

虽然我很欣赏接受的答案的完整性,但我发现这个答案很有用:在 JS 代码中访问在 DOM 文本输入元素(文本框)中输入的值。有关详细信息,请参阅本问题其他地方的我的回答。
2021-02-20 16:20:19

我会创建一个变量来存储这样的输入:

var input = document.getElementById("input_id").value;

然后我将只使用变量将输入值添加到字符串中。

= "Your string" + input;

简单直接的答案!
2021-02-28 16:20:19
如果您希望它是一个合适的 javascript 对象,以便您可以以编程方式访问每个属性,只需执行以下操作: var input = JSON.parse(document.getElementById("input_id").value);
2021-03-02 16:20:19

您应该能够输入:

var input = document.getElementById("searchTxt");

function searchURL() {
     window.location = "http://www.myurl.com/search/" + input.value;
}
<input name="searchTxt" type="text" maxlength="512" id="searchTxt" class="searchField"/>

我确信有更好的方法可以做到这一点,但这个方法似乎适用于所有浏览器,并且它只需要对 JavaScript 的了解最少就可以制作、改进和编辑。

您也可以通过标签名称调用,如下所示:form_name.input_name.value; 因此您将拥有特定形式的确定输入的特定值。

是的!我很惊讶这种简单。看看简单计算器的实现4stud.info/web-programming/samples/dhtml-calculator.html有没有关于这个 javascript functiality 的参考,因为我之前总是使用 jQuery 或 getElementById
2021-03-05 16:20:19