我正在以下列方式捕获使用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]')
但由于我已经有了表单对象,我想尽可能使用它。
由于
答案 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
})