我有这个表格
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和输入字段按名称获取表单。
我希望按名称获取表单和表单元素。
答案 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()
方法调用类或输入字段值,以便您可以在某个变量中使用该值。