选择组合框的OnChange事件在jQuery中从不激发
我有以下代码,其中我尝试为jQuery中的select组合框创建on change事件处理程序,但从未看到警报消息。这里怎么了选择组合框的OnChange事件在jQuery中从不激发,jquery,jquery-ui,jquery-ui-autocomplete,Jquery,Jquery Ui,Jquery Ui Autocomplete,我有以下代码,其中我尝试为jQuery中的select组合框创建on change事件处理程序,但从未看到警报消息。这里怎么了 $(document).ready(function () { var combo = $("#Supplier_Sel").combobox(); $($('.ui-combobox-input')[3]).css('width', '300px'); $("#toggle").click(function () {
$(document).ready(function () {
var combo = $("#Supplier_Sel").combobox();
$($('.ui-combobox-input')[3]).css('width', '300px');
$("#toggle").click(function () {
$("#Supplier_Sel").toggle();
});
//this change event never gets fired. WHY??
$("#Supplier_Sel").change("dssd",function () {
alert('Handler for .change() called.');
});
});
另外,我已经在我的页面中包含了以下脚本。可能我需要为combobox onchange事件添加一些其他脚本
<script type="text/javascript" src="../jquery/jquery-1.7.2.js"></script>
<script type="text/javascript" src="../jquery/ui/jquery-ui-1.8.21.custom.js"></script>
<script type="text/javascript" src="../jquery/jquery.scrollIntoView.min.js"></script>
删除dssd尝试:
我不知道.combobox方法做了什么,但我怀疑它需要一个实际的combobox,并对它进行了一些HTML欺骗。因此,它可能不再是一个下拉列表,也不会有onChange方法可用
如果您提供了一个指向哪个库有.combobox方法的链接,有人可以检查,但我非常确定它将是一些span和文本输入元素,比如jqueryui版本。这些没有更改方法。这会让每个人都感到惊讶。但对我来说,这似乎是火箭科学。英雄联盟 要触发jQuery组合框的更改事件,应始终使用如下代码。这篇文章中提到的所有方法都无法做到这一点。在jQuery中调用select元素的combobox方法时,我们需要连接事件。此外,更改事件从不激发,但如果以上述方式连接,则它显示的选定事件始终激发 如果您查看combobox小部件jQuery代码,上述方法是有意义的。如下所示
select: function( event, ui ) {
ui.item.option.selected = true;
//select.val( ui.item.option.value );
self._trigger( "selected", event, {
item: ui.item.option
});
}
下面是从jquery组合框触发事件的另一种方法 其他人发布:
下面的代码为我工作。测试 如果简单选择组合框,则使用下面的代码更改事件触发器
$("#mySelectCombo").on('change', function () {
alert("test");
});
$("#mySelectCombo").combobox({
select: function (event, ui) {
alert("hello");
}
});
如果是基于Jquery的选择组合,则使用下面的代码更改事件触发器
$("#mySelectCombo").on('change', function () {
alert("test");
});
$("#mySelectCombo").combobox({
select: function (event, ui) {
alert("hello");
}
});
这对我很有用:
$("#combobox_old").combobox({
selected: function (event, ui) {
alert('Handler for .selected() called.');
}
});
Murugesan Bakthavachal也为我编写了解决方案,但我认为其他代码不起作用,因为$.widget ui.combobox,{…};代码已经有一个更改事件的定义,因此以下代码不起作用:
$("#mySelectCombo").on('change', function () {
alert("test");
});
嗯。。。。为什么是dssd?另外,$$'.ui组合框输入“[3]”?因为intellisense中的更改方法签名显示更改数据,fnI在发布问题之前尝试了此操作,但未显示警报。@Sunil-触发document ready事件时是否存在供应商选择?如果是事后生成的,则需要使用.on或.delegate-当然,除非您在回调中附加处理程序。如果您查看我的原始代码,我将在document.ready发生后附加事件。我在事件代码之前验证过它的存在。Live已贬值请查看您的html,确保您具有有效的供应商选择ID,我的意思是检查拼写,大写是的,尝试了两者。id是正确的。选择多个供应商ABC唯一的其他选择是您必须将代码包装到document.ready中,并且您已经完成了。使用FireBug检查是否存在任何其他脚本错误我很高兴我的提示将您带到了这里。您是对的。更改事件从不触发!但如果是这样,最短的解决方案是将更改替换为选择。它起作用了!你救了我的命champ:只需在谷歌上搜索jQuery组合框演示,然后在jQuery网站上单击组合框示例的查看代码。您可以看到小部件代码,其中定义了select:函数。当然可以。这就是我想让你做的事教一个人钓鱼等等。。。!很高兴你找到了解决方案。你部分是正确的,但我一直在寻找的是如何连接事件以更改选择。你试图找出原因。更改不起作用;我提供了原因,这让你自己发现还有另一种方法需要使用。所以你是对的,我没有提供完整的答案和工作代码。这非常适合我,而且你还可以用!没有比这更好的结果了-与普通选择相比,选择适合我,非常感谢您的回答!
$("#combobox_old").combobox({
selected: function (event, ui) {
alert('Handler for .selected() called.');
}
});
$("#mySelectCombo").on('change', function () {
alert("test");
});