选择触发功能的表单中的所有输入

时间:2013-01-28 19:25:46

标签: javascript jquery

我试图找到使用jquery选择表单中的所有输入,其中触发器是从中启动的。因此,例如,如果在表单1中单击按钮,则仅选择表单1中的输入,并且不会选择表单2中的任何内容。

<form action="" method="POST">    <!--form 1-->

<input type="text" />
<input type="text" />
<input type="hidden" value="87678"  />

<input type="button" onclick="doit()" />

</form>




<form action="" method="POST">   <!--form 2-->

<input type="text" />
<input type="text" />
<input type="hidden" value="87678"  />

<input type="button" onclick="doit()" />

</form>

4 个答案:

答案 0 :(得分:2)

试试这个......

$(':button').on('click', function(){
    var form = $(this).parents('form:first');
    $(form).children().each(function(evt){
        if($(this).attr('type') == 'text'){
            alert(this.value);
        }
    });
});

请参阅此Example jsFiddle

问候。

答案 1 :(得分:1)

使用事件目标转到父表单并查找该表单中的所有输入

function doit(event){
    $(event.target).parent("form").find("input")
}

要使其工作,您将把锚标记的html更改为

<input type="button" onclick="doit(event)" /> 

答案 2 :(得分:1)

$('input[type=button]').click(function(){ 
    console.log( $('input',$(this).closest('form')) ) 
});

http://jsfiddle.net/kR3ws/1/

答案 3 :(得分:0)

id字段添加到按钮和表单中。

<form id="form1" action="" method="POST">    <!--form 1-->
<input type="text" />
<input type="text" />
<input type="hidden" value="87678"  />
<input id="btn1" type="button" onclick="doit()" />
</form>

<form id="form2" action="" method="POST">   <!--form 2-->
<input type="text" />
<input type="text" />
<input type="hidden" value="87678"  />
<input id="btn2" type="button" onclick="doit()" />
</form>

然后声明这样的事件:

$('#btn1').click(function(){
    var data = $('#form1').serialize();
    alert('form1 : '+data);
});

$('#btn2').click(function(){
    var data = $('#form2').serialize();
    alert('form2 : '+data);
});