如何在jquery中按名称获取表单元素?

use*_*901 1 jquery

我有这个表格

var sformElem = $('form[name="search_form"]')[0];
Run Code Online (Sandbox Code Playgroud)

我能够访问名称为'fieldname'的表单元素

var inputField = sformElem.fieldname;

    if (inputField) {  // true
    alert("this is true"); 
    } 
Run Code Online (Sandbox Code Playgroud)

但是当我试图使用jquery的val()方法访问该值时,javascript崩溃了.

inputField.val()未定义.

但是输入inputField.value会返回值

为什么val()方法不起作用?我哪里弄错了?另外,请建议最合适的按名称访问表单元素.

我所知道的一种方法是

$("#form2 input[name=name]")
Run Code Online (Sandbox Code Playgroud)

但是这里我们通过id和输入字段按名称获取表单.

我希望按名称获取表单和表单元素.

Sat*_*pal 5

为什么val()方法不起作用?

inputField.val()返回"未定义"因为inputField是DOM元素而不是jQuery对象.DOM元素没有val()方法.所以错误是正确的.

您需要将其转换为jQuery对象.喜欢

$(inputField).val()
Run Code Online (Sandbox Code Playgroud)

我希望按名称获取表单和表单元素.

var elem = $('form[name="search_form"] input[name=name]');
Run Code Online (Sandbox Code Playgroud)

  • +1.不知道为什么你被投票了. (2认同)