jQuery从表单对象获取值?

时间:2016-10-03 17:33:35

标签: javascript jquery

我有以下表格:

<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();但是如何从表单对象获得相同的内容?

1 个答案:

答案 0 :(得分:4)

您传递给函数的不是表单对象,它是一个jQuery对象,它包含在HTMLFormElement对象中。 jQuery的API允许您通过findtree traversal methods之一)轻松找到该元素中的元素: 1

$form.find("[name=bar]").val()

然后你需要从你的函数返回那个值,所以:

return $form.find("[name=bar]").val();

如果名称不是有效的CSS 标识符(它在您的示例中,但是......),请使用它周围的引号:

return $form.find("[name='bar']").val();

1 使用原生DOM也很容易,但你使用的是jQuery,所以......