如何使用querySelector on按名称选择输入元素?

Ant*_*cus 53 javascript

我最近在这个网站上收到了关于querySelector在表单输入上使用的帮助,select但是一旦我拿出<select>它就完全改变了在函数中必须完成的操作.

HTML:

<form onsubmit="return checkForm()">
    Password: <input type="text" name="pwd">
    <input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

<script language="Javascript" type="text/javascript">
    debugger;
    function checkForm() {
        var form = document.forms[0];
        var selectElement = form.querySelector('');
        var selectedValue = selectElement.value;

        alert(selectedValue);
</script>
Run Code Online (Sandbox Code Playgroud)

之前,我曾经('select')为此而努力querySelector,但现在我不确定要放在那里.
我尝试了很多东西,querySelectorAll但我似乎无法弄明白.

要明确我正试图拉动name="pwd".

我怎么能这样做?

Ale*_*euk 91

你可以试试'input [name ="pwd"]':

function checkForm(){
     var form = document.forms[0];
     var selectElement = form.querySelector('input[name="pwd"]');
     var selectedValue = selectElement.value;
}
Run Code Online (Sandbox Code Playgroud)

看看这个http://jsfiddle.net/2ZL4G/1/

  • "pwd"周围的引号似乎没有必要 (2认同)

小智 15

1- 您需要使用缺少的“}”关闭函数块。

2- querySelector 的参数不能是空字符串 '' 或 ' '... 全部使用 '*'。

3- 这些参数将返回所需的值:

querySelector('*')

querySelector('input')

querySelector('input[name="pwd"]')

querySelector('[name="pwd"]')
Run Code Online (Sandbox Code Playgroud)


T.T*_*dua 9

注意:如果名称包含[or]本身,请在其前面添加两个反斜杠,例如:

<input name="array[child]" ...

document.querySelector("[name=array\\[child\\]]");
Run Code Online (Sandbox Code Playgroud)


Cip*_*pes 8

我知道这很旧,但是最近我遇到了同样的问题,我设法通过仅访问如下属性来选择元素: document.querySelector('[name="your-selector-name-here"]');

以防万一有人会需要这个:)

  • 在 Chrome 版本 78.0.3904.70(官方版本)(64 位)中,使用仅包含 name 属性的 querySelector 仅返回第一个元素,因此您无法使用数组访问来访问集合中的任何其他单选按钮。相反,您需要为每个单选按钮分配一个唯一的 ID 或值(这是区分单选按钮的正常方法)。因此,随着 document.getElementsByName() 在 HTML5 中被弃用, document.querySelector('[name="radio-button-name"][value="unique-value"]') 是最好的替代品。 (2认同)