从JQuery中的多个表单中选择表单

时间:2012-02-29 23:40:38

标签: javascript jquery ajax forms

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

<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>

3 个答案:

答案 0 :(得分:1)

仅检测来自form1的更改事件:

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

要对form2执行相同的操作,您必须将其更改为

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

答案 1 :(得分:1)

http://jsfiddle.net/escusado/nVxFh/

'更改'事件气泡,以便您可以在容器级别捕获它:

$('#form1').change(function(){
  $('#console').text('te');
  //change actions
});

答案 2 :(得分: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>