使用 jquery.selectbox 时无法设置 SELECT 控件的值

Posted

技术标签:

【中文标题】使用 jquery.selectbox 时无法设置 SELECT 控件的值【英文标题】:cannot set value of SELECT control when using jquery.selectbox 【发布时间】:2012-03-20 17:07:52 【问题描述】:

当使用 jquery.selectbox.js 插件制作漂亮的 SELECT 下拉菜单时,我遇到了一个问题,我无法使用 JQuery 选择当前值:$("#select_id").val("my value");

可能的解决方案是删除 $('#select_id').selectbox();打电话,但我失去了设计。

怎么办?

调查:

使用 jquery.selectbox 时,真正的下拉菜单隐藏在页面上,只有 jquery.selectbox 制作的表示元素可见(实际上它们是 DIV)。问题是当 .val() 更新时,对应的可见 DIV(带有 class="jquery-selectbox-currentItem")没有更新。

【问题讨论】:

为什么人们会投反对票?很难理解这样的问题实际上可以帮助以后的人吗?感谢这个问题和解决方案! 【参考方案1】:

不是最佳解决方案,但比您提出的解决方法更干净,试试这个(基本上,强制 selectBox 更新其 html):

$("#order_billing_region").val("your value").selectBox("options", $("#order_billing_region").html());

【讨论】:

【参考方案2】:

我找到了一种解决方法,我们可以分离选择框,然后设置值并再次将选择框插件附加到下拉列表。

function fnClearJquerySelectBox(control,value)

   $("#order_billing_region").selectbox("detach");
   $("#order_billing_region").val(value);
   $("#order_billing_region").selectbox("attach");


fnClearJquerySelectBox("control","0");

希望这会有所帮助..

【讨论】:

【参考方案3】:

我发现以下内容: https://github.com/marcj/jquery-selectBox/blob/master/readme.md

代码: $('select').selectBox('value', 1);

【讨论】:

【参考方案4】:

我发明了一种解决方法:

var ctlName = "#order_billing_region";
var ctl = $(ctlName);
ctl.val("my value");
//A workaround for buggy jquery.selectbox
ctl.siblings(".jquery-selectbox-currentItem").html($(ctlName + " option:selected").html());

【讨论】:

以上是关于使用 jquery.selectbox 时无法设置 SELECT 控件的值的主要内容,如果未能解决你的问题,请参考以下文章

css jQuery SelectBox插件的默认SCSS样式

有没有人用过 jquery 美化下拉列表的插件 jQuery.SelectBox.js ???有问题咨询

使用 UINavigationController 时 UIStackView 无法设置底部约束

使用 jquery 设置时无法在 vb 页面上获取会话

使用 QMessageBox 时无法使用 QThread 设置父错误

在android中使用自定义列表视图时无法设置左右对话