Javascript 如何使用jQuery元素选择器从表单中获取输入字段的ID

Javascript 如何使用jQuery元素选择器从表单中获取输入字段的ID,javascript,jquery,Javascript,Jquery,我有一个表单,每个输入字段都有一个唯一的id,我在表单中附加了关于“输入”的jquery。我想获取用户使用jquery函数更改某些值的字段id。我在alert(“……语句”)中的以下代码中缺少一些谜题 $(document).ready(function () { $("#CreateStudentProfileForm").on('input', function () { alert($(this).find().closest().attr('id'));

我有一个表单,每个输入字段都有一个唯一的id,我在表单中附加了关于“输入”的jquery。我想获取用户使用jquery函数更改某些值的字段id。我在alert(“……语句”)中的以下代码中缺少一些谜题

 $(document).ready(function () {

    $("#CreateStudentProfileForm").on('input', function () {

        alert($(this).find().closest().attr('id'));

    });

});
HTML表单


我有许多类似于上面的输入字段的实例

如果将事件分别附加到每个字段,会怎么样

$(文档).ready(函数(){
$(“#CreateStudentProfileForm”).find(“输入,文本区域,选择”).on('input',函数(){
警报(this.id);
});
});

如果要跟踪输入的更改事件,请使用更改事件

   //assuming you input id is CreateStudentProfileForm
   $("#CreateStudentProfileForm").on('change', function () {
    alert(this.id) //should give you the changed input id
    //alert($(this).find().closest().attr('id'));

   });
keyup
更好

  $("#CreateStudentProfileForm").keyup(function () {
    alert(this.id)
    //alert($(this).find().closest().attr('id'));

});
已更新

这将获取id
CreateStudentProfileForm
指定的表单中存在的所有输入,并添加keyup事件以跟踪更改

//assuming CreateStudentProfileForm is form's ID
$("#CreateStudentProfileForm:input").keyup(function () {
    alert(this.id) //should give you the changed inputs id
    //alert($(this).find().closest().attr('id'));

   });
“id”是您想要的id…

使用以下任一选项:

this.id;
或获得:

$(this).attr("id");

假设您有一个类似的HTML

<form id="CreateStudentProfileForm">
  <input type="text" id="input1">
  <input type="text" id="input2">
  <input type="text" id="input3">
</form>
请注意,此事件将在
输入
更改
时触发。您可能只想在更改或输入时触发它,具体取决于您需要执行的操作。

$(文档)。就绪(函数() {$(“#CreateStudentProfileForm”).find(“input”).on('input',function(){var get_id=$(this.attr('id');});});

执行类似操作


最近的()
什么?也许你只是想要
事件.target.id
?找到什么和最近的什么?也许你想要$(this.attr('id')??正如我所见,这不是
完整的
HTML@Tushar我想OP想要$(this).attr('id')已经OP有错误的代码了,你不觉得吗.find().closest()做什么?你也在做同样的事。对不起,我没有对你投否定票,但这不起作用!@你想要更改输入的id吗?如果是的话,我会更新我的答案。检查它。这可能不是最好的方法。首先,输入每次都会触发,即使你将数据粘贴到字段中。“更改”“仅当输入失去焦点时才会触发。另一个问题是,您的代码将仅适用于输入类型元素(他可能还有select、textarea元素);最后,这只适用于表单元素的直接上升元素,如果表单中有更复杂的HTML结构,则不起作用。正如我在回答中所说的,根据需要,在输入和更改之间只应使用一个事件触发器,问题表明他需要输入触发器。是的,s选民是相当严格的,这是最好的方式去与给定的例子。你可以随时改变选择器根据你的需要。
$(this).attr("id");
<form id="CreateStudentProfileForm">
  <input type="text" id="input1">
  <input type="text" id="input2">
  <input type="text" id="input3">
</form>
$('#CreateStudentProfileForm > input').on('input change', function () {
    alert($(this).attr('id'));
});
$(document).ready(function(){

  $("#CreateStudentProfileForm input").keyup(function(){

    alert(this.id);    
  });

});