性感组合框插件在jquery对话框中不起作用

性感组合框插件在jquery对话框中不起作用,jquery,asp.net-mvc,combobox,dialog,Jquery,Asp.net Mvc,Combobox,Dialog,我正在尝试使用这个插件,它将一个选择列表变成一个组合框,用户除了可以输入选择列表功能外,还可以在其中输入他们的选择 我遇到的问题是,当选择列表位于jquery对话框中时,它不再具有下拉功能。如果在键入已知值的前几个字母时按tab或enter键,则自动完成功能仍然有效,但不会出现充满选项的框。还有其他人遇到过这种情况吗?是否有已知的解决方案/解决方法 来自site.master 从EditProduct.ascxl加载到对话框内部 看起来该插件使用的是较旧版本的JQuery,并且没有被积极维护。谷

我正在尝试使用这个插件,它将一个选择列表变成一个组合框,用户除了可以输入选择列表功能外,还可以在其中输入他们的选择

我遇到的问题是,当选择列表位于jquery对话框中时,它不再具有下拉功能。如果在键入已知值的前几个字母时按tab或enter键,则自动完成功能仍然有效,但不会出现充满选项的框。还有其他人遇到过这种情况吗?是否有已知的解决方案/解决方法

来自site.master

从EditProduct.ascxl加载到对话框内部


看起来该插件使用的是较旧版本的JQuery,并且没有被积极维护。谷歌代码页面链接了一个fork/alternative:


或者,您可以查看JQueryUI自动完成小部件:

该插件似乎正在使用较旧版本的JQuery,并且没有被积极维护。谷歌代码页面链接了一个fork/alternative:


或者,您可以查看JQueryUI自动完成小部件:

我们在网站上也使用过这个小部件。此后,我们放弃了使用它,转而使用使用jquery.ui.button的自定义jquery.ui插件,特别是buttonset。sexycombo插件有很多问题,对我们来说并不好用

我建议你自己写;其实很简单


这些页面为您提供了一个良好的开端,包括所需的标记。它可能无法满足您的所有需要,但您可以通过按钮旁边的输入轻松实现自动完成功能。

我们过去也在我们的网站上使用此小部件。此后,我们放弃了使用它,转而使用使用jquery.ui.button的自定义jquery.ui插件,特别是buttonset。sexycombo插件有很多问题,对我们来说并不好用

我建议你自己写;其实很简单


这些页面为您提供了一个良好的开端,包括所需的标记。它可能无法满足您的所有需求,但您可以通过按钮旁边的输入轻松实现自动完成功能。

我从谷歌代码页上的一些评论中找到了解决方案。在jquery.sexy-combo.js脚本的第194行,有这样一行:

    this.singleItemHeight = this.listItems.outerHeight();
问题是,在jquery对话框中,无论出于何种原因,listItems.outerHeight;每次返回0。因此,为了解决此问题并获得正确的行为,有人建议将singleItemheight设置为任意值(如果设置为0),如下所示:

    if (this.singleItemHeight == 0)
    {
        this.singleItemHeight = 20;
    }

谢谢你的建议,我真的不想重写我自己的插件,因为我有太多的事情要做。

我从谷歌代码页上的一些评论中找到了解决方案。在jquery.sexy-combo.js脚本的第194行,有这样一行:

    this.singleItemHeight = this.listItems.outerHeight();
问题是,在jquery对话框中,无论出于何种原因,listItems.outerHeight;每次返回0。因此,为了解决此问题并获得正确的行为,有人建议将singleItemheight设置为任意值(如果设置为0),如下所示:

    if (this.singleItemHeight == 0)
    {
        this.singleItemHeight = 20;
    }

感谢您的建议,我真的不想重写我自己的插件,因为我有太多的插件在运行。

对于SexyCombo 2.1.3,您还必须检查它断言为null的变量初始化。将条件语句更新为!this.singleItemHeight | | this.singleItemHeight==0。在强制操作数的值时,您可能还希望使用===而不是==作为相等运算符来绕开JavaScript的怪癖。对于SexyCombo 2.1.3,还必须检查它断言为null的变量初始化。将条件语句更新为!this.singleItemHeight | | this.singleItemHeight==0。在强制操作数的值时,您可能还希望使用===而不是==作为相等运算符来绕开JavaScript的怪癖。