2012-02-29 81 views
0

使用jquery change(),如何只选择form1字段而不是所有表单字段?下面是我的代码。现在,它检测两种形式的字段的变化,但我只希望它检测form1中字段的变化。从JQuery的多个表单中选择表单

<form id="form1" name="form1" method="post" action=""> 
<label for="textfield"></label> 
<input type="text" name="textfield" id="textfield" /> 
<label for="select"></label> 
<select name="select" id="select"> 
<option value="yes">yes</option> 
<option value="no">no</option> 
</select> 
</form> 

<form id="form2" name="form2" method="post" action=""> 
<label for="textfield2"></label> 
<input type="text" name="textfield2" id="textfield2" /> 
<label for="select2"></label> 
<select name="select2" id="select2"> 
<option value="yes">yes</option> 
<option value="no">no</option> 
</select> 
</form> 

<script> 
$(':input').change(function() { 
     alert('Handler for .change() called.'); 
     }); 
</script> 

回答

1

从Form1中只检测改变事件:

$('#form1 :input').change(function() { 
    alert('Handler for .change() called.'); 
}); 

为窗口2做同样的你必须将其更改为

$('#form2 :input').change(function() {... 
0

您可以将特定一类添加到你的表单1的东西,并提到

<form class="form1sel" id="form1" name="form1" method="post" action=""> 
<label for="textfield"></label> 
<input class="form1sel" type="text" name="textfield" id="textfield" /> 
<label for="select"></label> 
<select class="form1sel" name="select" id="select"> 
<option value="yes">yes</option> 
<option value="no">no</option> 
</select> 
</form> 

<script> 
$('.form1sel').change(function() { 
    alert('Handler for .change() called.'); 
}); 
</script> 

或只使用一个更具体的选择

<script> 
$('#form1 :input').change(function() { 
    alert('Handler for .change() called.'); 
}); 
</script>