以特定形式引用输入

时间:2012-12-29 14:55:08

标签: javascript jquery

我正在以下列方式捕获使用twitter bootstrap创建的表单的数据异步:

 $('form[data-async]').live('submit', function(event) {
        var $form = $(this);
        var $target = $($form.attr('data-target'));
        var target_id = $target[0].id;

  ....
 }

我想在相关表单中引用名称为“username”的输入...我尝试了$ form.username,$ form ['username'],但无济于事,我找不到如何得到输入。我知道我可以使用

  $('#formid input[name=bla]') 

但由于我已经有了表单对象,我想尽可能使用它。

由于

3 个答案:

答案 0 :(得分:4)

您可以使用.find()

var $input = $form.find('input[name=bla]');

编辑 - 评论者杰克指出,还有DOM元素的HTML5“元素”属性。这使您可以通过名称或ID或数字索引获得输入。

var input = this.elements['bla'];

由于该机制还考虑了元素“id”属性(实际上这些属性优先于我认为),因此名称访问变得复杂。

答案 1 :(得分:2)

在提交处理程序中,username输入字段只能通过以下方式引用:

this.elements['username']

不需要花哨的jQuery:)

<强>更新

没有意识到elements是一个相当新的补充。在此之前你可以使用:

this.username

更新2

填充版本看起来像这样:

var field = this.elements ? this.elements['username'] : this.username;

答案 2 :(得分:1)

您可以将表单对象用作context with selector来查找上下文中的元素。

语法:jQuery( selector [ , context ] )

$('input[name=bla]', $form );

您可以使用它代表您的表单。

$('form[data-async]').live('submit', function(event) {

     $('input[name=bla]', this ); // this is your form

 })