jQuery - 选择具有多个表单的页面上特定表单的输入

时间:2013-12-31 11:53:52

标签: jquery html forms validation loops

在我的页面上,我有多种形式用于不同目的。我想验证其中一种形式。所以我想遍历这个表单的输入并检查每个表单。问题是,当我循环输入时,我也看到来自其他形式的输入。

示例:

<form id="form1" name="form1" method="get" action="#">
<input type="text" name="test1" id="test1"/>
<input type="text" name="test2" id="test2"/>
</form>

<form id="form2" name="form2" method="get" action="#">
<input type="text" name="test3" id="test3"/>
<input type="text" name="test4" id="test4"/>
</form>

<script>
jQuery('#form2').submit(function( event ) {
    validate_form(this);
    event.preventDefault();
});

function validate_form(form){
    jQuery(form+':input').each(function(){
        console.log(jQuery(this).attr('id'));
    });
}
</script>

输出将是:

TEST1 TEST2 TEST3 TEST4

我想看到的是:

TEST3 TEST4

有什么想法吗?非常感谢。

4 个答案:

答案 0 :(得分:0)

您可以传递提交表单的id以获得预期结果。

尝试,

jQuery('#form2').submit(function( event ) {
    validate_form($(this).attr('id'));
    event.preventDefault();
});

答案 1 :(得分:0)

您需要使用.find()

function validate_form(form){
    jQuery(form).find(':input').each(function(){
        console.log(jQuery(this).attr('id'));
    });
}

答案 2 :(得分:0)

我认为以下jQuery代码正在运行:

jQuery('#form2').submit(function( event ) {
    validate_form(this);
    event.preventDefault();
});

function validate_form(form){
    jQuery(form).children('input').each(function(){
        console.log(jQuery(this).attr('id'));
    });
}

答案 3 :(得分:0)

尝试以下

 jQuery('#form2').submit(function( event ) {
        validate_form($(this));
        event.preventDefault();
    });

    function validate_form(form){
        jQuery(form).find(':input').each(function(){
            console.log(jQuery(this).attr('id'));
        });
    }