特定 ID 上的 jquery .on(change)

Bol*_*lli 2 javascript ajax jquery

编辑:抱歉,我太累了,在这里编写代码时实际上可以正常工作!跆拳道:D

我在同一页面上有许多不同的下拉列表,并且在其中一个发生更改时不想执行 AJAX 请求。

如果我这样做,它会起作用:

  $(document).on('change', '#changeresponsibleuser', function(){
    var user = $(this).val();
    var partnerid = $(this).attr('name');
           $.ajax({
              type: "POST",
              url: "resources/dialogs/editResponsibleUser.php",
              data: {user: user,
                     partnerid: partnerid},
              success: function(msg){
                    $('.productmessage').html(msg).hide().fadeIn(500).fadeOut(4000);

                  },
                });
  });
Run Code Online (Sandbox Code Playgroud)

但这会欺骗我在页面上的所有下拉框。我不想做这样的事情:

  $(document).ready(function(){
  $("#changeresponsibleuser").on('change',function(){
    var user = $(this).val();
    var partnerid = $(this).attr('name');
           $.ajax({
              type: "POST",
              url: "resources/dialogs/editResponsibleUser.php",
              data: {user: user,
                     partnerid: partnerid},
              success: function(msg){
                    $('.productmessage').html(msg).hide().fadeIn(500).fadeOut(4000);

                  },
                });

      });
  });
Run Code Online (Sandbox Code Playgroud)

所以它只监听具有该确切 ID 的下拉列表。但它不起作用,不会触发 on change 事件。

如何仅在#changeresponsibleuser 更改时触发事件?

标记如下所示:

<select id="changeresponsibleuser" name="2" class="responsible2 form-control form-group">

<option name="user" value="36" selected="selected">One user</option>
<option name="user" value="41">Another user</option>
<option name="user" value="40">yet another user</option>
</select>
Run Code Online (Sandbox Code Playgroud)

提前致谢!

Gib*_*bbs 8

$(function(){
 $("#changeresponsibleuser").on('change', function(){
   alert("Works");
 })
  
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="changeresponsibleuser" name="2" class="responsible2 form-control form-group">

<option name="user" value="36" selected="selected">One user</option>
<option name="user" value="41">Another user</option>
<option name="user" value="40">yet another user</option>
</select>
Run Code Online (Sandbox Code Playgroud)

有用。你怎么说它不起作用?

但是这对我在页面上的所有下拉框中进行了欺骗

不,您必须使用类名而不是 id。您似乎正在使用重复的 ID。因此,它会在所有具有重复 ID 的选择下拉列表上触发。

$(document).on('change', '.changeresponsibleuser',function(){
   alert("Works");
 });
Run Code Online (Sandbox Code Playgroud)

它将触发所有具有类的下拉更改 changeresponsibleuser

  • 它有资格成为答案吗?您无需发布答案即可说 _IT IS WORKING!_ (2认同)