我有一个国家和州的下拉菜单。我们的 UI 设计师使用了 jcf 插件,它隐藏了真实的选择框并转换成一个看起来和行为都像下拉菜单的控件。当我不必从客户端动态填充这些选择框时,它运行良好。
我有一个国家下拉列表,并根据所选列表填充我的州下拉列表。使用 jcf,我可以看到填充了真正的下拉列表(位于左侧 -9999px),但只有第一个选项显示在替换它的控件中。有谁知道如何显示/填充修改后的控件。
谢谢,
编辑:这似乎在我更改后重建了选择。
$('#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();
至于上一个答案,当您只想重新加载选择时似乎很奇怪。
这是对我有用的代码。代码设置一个select
字段值,然后refresh
使用 更改值jcf
,select
将使用值为 42 的选项选择字段
jQuery("#select-element").val("42");
jcf.getInstance(jQuery("#select-element")).refresh()
填充状态时,您需要再次定义以下函数:
jcf.customForms.replaceAll();
initSlideShow();
initInputs();
initSameHeight();
initTabs();
fixSelect();initCounter();
initOpenClose();
对我来说只有一条线。及其通用解决方案。
$(document).ajaxComplete(function() {
jcf.customForms.replaceAll();
});
干杯!!!
您只需要在选择框值更改时调用刷新方法
jcf.getInstance($("#select-box")).refresh()