我试图找到使用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>
答案 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')) )
});
答案 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);
});