使用.trigger(';change';)时未触发jQuery change()事件
我有一些jQuery代码,它在使用.trigger(';change';)时未触发jQuery change()事件,jquery,Jquery,我有一些jQuery代码,它在select下拉列表值更改时填充表单。就其本身而言,它可以按预期工作,但我需要在加载页面时触发它 我将父表包括在选择器中,因为元素是动态创建的 正如我所说的,当用户进行下拉选择时,这是可以预期的,但是下面的$。每个都不会触发事件,即使它确实遍历数组并更改下拉值-更改事件永远不会触发 jQuery(document).ready(function ($) { var _dropdownVals = [ '-1', '11', '63' ]; $.e
select
下拉列表值更改时填充表单。就其本身而言,它可以按预期工作,但我需要在加载页面时触发它
我将父表包括在选择器中,因为
元素是动态创建的
正如我所说的,当用户进行下拉选择时,这是可以预期的,但是下面的$。每个都不会触发事件,即使它确实遍历数组并更改下拉值-更改事件永远不会触发
jQuery(document).ready(function ($) {
var _dropdownVals = [ '-1', '11', '63' ];
$.each(_dropdownVals, function (val) {
$('select[name="form_list_0"]').val(val).trigger('change');
});
$('table').on('change', 'select[name^="form_list_"]', function () {
... do something
});
});
我甚至不认为有必要使用.trigger()
有人能告诉我为什么更改事件可能没有触发吗?它正在触发,但您尚未注册事件处理程序!事件处理程序仅处理注册后触发的事件。请尝试以下方法:
$('table').on('change', 'select[name^="form_list_"]', function () {
... do something
});
$.each(_dropdownVals, function (val) {
$('select[name="form_list_0"]').val(val).trigger('change');
});
顺便说一句,您确实需要使用触发器
,因为以编程方式更改值不会自动触发事件。它正在触发,但您尚未注册事件处理程序!事件处理程序仅处理注册后触发的事件。请尝试以下方法:
$('table').on('change', 'select[name^="form_list_"]', function () {
... do something
});
$.each(_dropdownVals, function (val) {
$('select[name="form_list_0"]').val(val).trigger('change');
});
顺便说一句,您确实需要使用trigger
,因为以编程方式更改值不会自动触发事件。在分配“更改”事件之前,您正在触发它。@AlanJurczak是的,我是。这解决了问题。您在分配“更改”事件之前正在触发它。@AlanJurczak是的,我是。这解决了问题。这完美地解决了问题。我刚刚学到了一些东西。谢谢。这很好地解决了这个问题。我刚刚学到了一些东西。谢谢