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

时间:2014-07-16 13:09:34

标签: jquery

我有这个表格

var sformElem = $('form[name="search_form"]')[0];

我可以通过

访问名称为'fieldname'的表单元素
var inputField = sformElem.fieldname;

    if (inputField) {  // true
    alert("this is true"); 
    } 

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

inputField.val()未定义。

但是 inputField.value 会返回值

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

我所知道的一种方法是

$("#form2 input[name=name]")

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

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

4 个答案:

答案 0 :(得分:5)

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

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

您需要将其转换为jQuery对象。像

$(inputField).val()

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

var elem = $('form[name="search_form"] input[name=name]');

答案 1 :(得分:2)

$(inputField).val()将DOM元素传递给jQuery,从而使val可用

答案 2 :(得分:0)

var x = $("form[name = "search_form"]).get(0)

$("form[name = "search_form"]).get(0)

因为它不是jquery对象值所以不起作用。为了使用val你必须使它成为一个jquery对象。

$(x).val();

通过这个,您将获得DOM元素

答案 3 :(得分:0)

使用

完成
$('inputField id or class').attr('attribute');

可以通过.attr()方法调用类或输入字段值,以便您可以在某个变量中使用该值。