查找更改的表单元素

时间:2017-10-06 09:10:28

标签: jquery forms events element

我正在使用jQuery表单更改事件

$('form').change(function(e) {
  alert('hello');
});

我想知道触发了表单更改事件的元素id。

3 个答案:

答案 0 :(得分:1)

要实现此目的,您可以在form元素上使用委托处理程序,该处理程序在子窗体控件上侦听change事件。

然后,您可以在事件处理程序中使用this关键字来引用引发事件的元素,如下所示:

$('form').on('change', ':input', function() {
  console.log(this.id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type="text" id="foo" />
  <input type="text" id="bar" />
</form>

或者,您可以将当前change事件处理程序保留在form上并依赖于事件冒泡DOM,并使用事件的target属性来确定导致哪个元素事件:

$('form').change(function(e) {
  console.log(e.target.id);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type="text" id="foo" />
  <input type="text" id="bar" />
</form>

答案 1 :(得分:0)

$('form').change(function(e) {
  alert($(this).attr('id'));
});

如果您想了解它是哪种形式。如果您想了解哪种形式的输入,那么必须更改。查看其他人添加的上述答案。

答案 2 :(得分:0)

你可以使用$(e.target).attr('id'):DEMO ATTACHED

$('form').on('change', function(e) {

 alert("$(e.target).attr('id'): " +  $(e.target).attr("id"))
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type="text" id="textBox1" placholder="textBox1"/>
  <input type="text" id="textBox2" placholder="textBox1"/>
</form>