编辑:对不起,我很累,在这里编写代码时,代码实际上正在工作! WTF: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);
},
});
});
但这使我在页面上的所有下拉框中都感到困惑。我不会做这样的事情:
$(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);
},
});
});
});
因此,它仅侦听具有该确切ID的下拉列表。但这不起作用,更改事件未触发。
仅在#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>
提前致谢!
最佳答案
$(function(){
$("#changeresponsibleuser").on('change', function(){
alert("Works");
})
});
<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>
有用。您怎么说它不起作用?
但这在我页面上的所有下拉框中都是骗人的
否。您必须使用类名而不是ID。看来您使用的是重复的ID。因此,它会触发具有重复ID的所有选择下拉列表。
$(document).on('change', '.changeresponsibleuser',function(){
alert("Works");
});
它将触发所有具有类
changeresponsibleuser
的下拉更改