我有一个国家和州的下拉列表。我们的UI设计师使用了jcf插件,它隐藏了真正的选择框并转换为一个控件,其外观和行为类似于下拉列表。当我不必从客户端动态填充这些选择框时,它运行良好。
我有一个国家/地区下拉列表,根据所选列表,我的状态下拉列表应填充。使用jcf,我可以看到真正的下拉列表(位于-9999px左侧)已填充,但只有第一个选项显示在替换它的控件中。有谁知道如何显示/填充修改后的控件。
谢谢,
答案 0 :(得分:9)
编辑:这似乎在我更改之后重建了选择。
$('#myselectbox')[0].jcf.buildDropdown(); // Rebuild based on options
$('#myselectbox')[0].jcf.refreshState(); // Updates to current selected
我有完全相同的问题,我正在从源头获得答案。
这个jcf.customForms“插件”似乎没有很多文档。您可能使用相同的服务(psdtohtml)或类似的公司将您的设计切割成HTML。这似乎是与该服务相关的一些自定义JavaScript。
通过查看源代码或使用console.debug(jcf.customForms);
可以找到很多内容,但我还没有找到解决方案。我想出来的时候会更新。
我尝试过很多像
这样的东西//jcf.customForms.setOptions(states[0]);
//jcf.customForms.refreshAll();
//jcf.customForms.refreshElement(states[0]);
//states.refreshState();
至于上一个答案,当您只是想重新加载一个选择时,似乎很奇怪initTabs();
。
答案 1 :(得分:2)
这是适合我的代码。
代码设置select
字段值,然后设置refresh
并使用jcf
更改值,select
字段将使用值为42的选项进行选择
jQuery("#select-element").val("42");
jcf.getInstance(jQuery("#select-element")).refresh()
答案 2 :(得分:1)
填充状态时,需要再次定义以下函数:
jcf.customForms.replaceAll();
initSlideShow();
initInputs();
initSameHeight();
initTabs();
fixSelect();initCounter();
initOpenClose();
答案 3 :(得分:0)
我只需要一行。及其通用解决方案。
$(document).ajaxComplete(function() {
jcf.customForms.replaceAll();
});
干杯!!!
答案 4 :(得分:0)
您需要做的就是在选择框值更改时调用刷新方法
jcf.getInstance($("#select-box")).refresh()