我有以下表格:
<form>
<input type="radio" name="foo" value="1" checked="checked" />
<input type="radio" name="foo" value="0" />
<input name="this" value="xxx" />
<select name="bar">
<option value="hi" selected="selected">Hi</option>
<option value="ho">Ho</option>
</select>
<a class="js-add" href="#" >Add</a>
</form>
我有以下函数在单击添加链接时传递整个表单:
$(".js-add").click(function (e) {
e.preventDefault();
values = getFormValues($("form"));
});
getFormValues = function($form) {
var bar = $form.bar.val();
}
如何从表单对象中检索特定输入值。因此,例如在上面的getFormValues
函数中,我想获取条形输入字段的值,但上面的内容并不起作用。通常我只是这样做:$bar.val();
但是如何从表单对象获得相同的内容?
答案 0 :(得分:4)
您传递给函数的不是表单对象,它是一个jQuery对象,它包含在HTMLFormElement
对象中。 jQuery的API允许您通过find
(tree traversal methods之一)轻松找到该元素中的元素: 1
$form.find("[name=bar]").val()
然后你需要从你的函数返回那个值,所以:
return $form.find("[name=bar]").val();
如果名称不是有效的CSS 标识符(它在您的示例中,但是......),请使用它周围的引号:
return $form.find("[name='bar']").val();
1 使用原生DOM也很容易,但你使用的是jQuery,所以......