Javascript JQuery UI自动完成组合框高亮显示
我有一个Javascript JQuery UI自动完成组合框高亮显示,javascript,jquery,css,jquery-ui,Javascript,Jquery,Css,Jquery Ui,我有一个,需要在功能更强大的组合框中进行转换 <span class="combo_box"> <select id="state" name="state" tabindex="24"> <option value="" disabled selected style="display:none"></option> <!-- Some JSP here --> </select&
,需要在功能更强大的组合框中进行转换
<span class="combo_box">
<select id="state" name="state" tabindex="24">
<option value="" disabled selected style="display:none"></option>
<!-- Some JSP here -->
</select>
</span>
但是添加这个CSS类似乎对小部件的外观没有影响。还尝试了硬代码,比如$(“#state”).addClass('ui-state-error')
,但仍然没有成功。
同样尝试过,对selectmenu有效,但对combobox无效
<span class="combo_box">
<select id="state" name="state" tabindex="24">
<option value="" disabled selected style="display:none"></option>
<!-- Some JSP here -->
</select>
</span>
可能的解决方案:(感谢)
编辑\u createAutocomplete:function()
如下:
_createAutocomplete: function() {
var selected = this.element.children( ":selected" ),
value = selected.val() ? selected.text() : "";
this.input = $( "<input>" )
.appendTo( this.wrapper )
.val( value )
.attr( "title", "" )
.attr( "id", "ui-" + this.element.attr("id") + "-input" )
...
\u createAutocomplete:function(){
var selected=this.element.children(“:selected”),
value=selected.val()?selected.text():“”;
this.input=$(“”)
.appendTo(this.wrapper)
.val(值)
.attr(“标题”、“名称”)
.attr(“id”,“ui-”+此.element.attr(“id”)+“-输入”)
...
问题是-默认API不会为combobox的元素生成唯一ID。您可以尝试使用我在这里编写的代码吗?我使用jqueryui示例进行操作:
函数校验值(项){
item.removeClass('ui-state-error');
如果(item.val()==“”){
item.addClass('ui-state-error');
}
}
校验值($(“.custom combobox input”);
.ui状态错误{
背景色:红色;
}
您确定没有将该类应用于隐藏选择吗?:P@nowhere这就是问题的核心所在,在我提到的工作解决方案中,他们为小部件元素使用了一些生成的id。但我没有找到组合框元素(自动完成和按钮)的id。另外:据我所知style=“display:none”当添加到选项时,不能在每个浏览器中工作。您是否在旧版本的IE中试用过?此解决方案适用于特定的浏览器和特定的客户,因此没有问题。您需要以某种方式识别小部件创建的select…您不能依赖任何类或id吗?它是否具有可用于识别它的父元素?问题如果这个类有多个选项,所有选项都将突出显示。因此,我需要提取特定组合框输入和特定组合框按钮的id。@Ahnassi是的,但是如果通过代码向其中添加id,您应该能够访问所需的元素。您在“编辑”部分之后尝试过我的代码吗?谢谢!编辑\u create:function()
工作得很好,虽然我不认为更改API是一个很好的解决方案,但这是我目前拥有的最好的解决方案。@Ahnassi好的,我们只是绕过了它的限制,使它变得更好:P很高兴能提供一些帮助。