使用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>
答案 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>