Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择组合框的OnChange事件在jQuery中从不激发_Jquery_Jquery Ui_Jquery Ui Autocomplete - Fatal编程技术网

选择组合框的OnChange事件在jQuery中从不激发

选择组合框的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 () {

我有以下代码,其中我尝试为jQuery中的select组合框创建on change事件处理程序,但从未看到警报消息。这里怎么了

  $(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");              
    });