从提交的表单中获取所有输入

时间:2012-04-06 11:34:29

标签: javascript jquery

我的表格没有id,没有任何课程。我需要获取其中的所有输入,我有一个脚本但它将获得所有输入,无论它们是否在我的表单内。

当然我可以在我的表单中添加类,id,但是在没有向表单添加标识符的情况下,有没有办法做我想做的事情?

在我的情况下,它将通过我的页面上的每个输入进行迭代,这是合乎逻辑的,但我怎样才能确保它只会通过当前表单上的每个输入进行迭代?

$('form').submit(function(e){
    e.preventDefault();

    $('input, textarea').each(function(){
        alert('a'); // Alerts on every input, not just inside this form...
    });
});

小提琴:http://jsfiddle.net/dsN43/

3 个答案:

答案 0 :(得分:3)

您可以将this作为上下文(第二个参数)传递给jQuery函数,以便仅搜索当前元素内部。

$('form').submit(function(e){
    e.preventDefault();

    $('input, textarea', this).each(function(){
        alert('a'); // Alerts on every input inside this form.
    });
});

答案 1 :(得分:1)

$('form').submit(function(e){
    e.preventDefault();

    $(this).find('input, textarea').each(function(){
        alert('a'); // Alerts on every input, just inside this form
    });
});

答案 2 :(得分:0)

您可以像这样使用jQuery find()方法:(最好调试打印元素的tagName / name属性,以确保找到正确的属性)

$(document).ready(function(){
    $('form').submit(function(e){
        e.preventDefault();

        $(this).find('input, textarea').each(function(){
            alert(this.nodeName + ' ' + $(this).attr('name'));
        });
    });
});​

jsFiddle example