应用selectize.js以动态添加具有formvalidation的相互依赖的下拉列表

时间:2015-11-05 13:02:12

标签: jquery html twitter-bootstrap

我正在开发一个基于引导程序的表单,可以动态添加或删除字段,也可以使用formvalidation插件验证字段!此外,我正在使用selectize.js进行两次相互依赖的下拉菜单!它到目前为止工作但我不知道如何为新添加的下拉列表初始化selectize.js!

这是JSFiddle,其中包含我的所有代码(相互依赖的下拉列表无效)!

formvalidation.io我发现这种方式初始化

$('#selectizeForm')
    .formValidation({
        framework: 'bootstrap',
        excluded: ':disabled',
        icon: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        fields: {
            frameworks: {
                validators: {
                    callback: {
                        message: 'Please indicate 2-4 Javascript frameworks',
                        callback: function(value, validator, $field) {
                            ...
                        }
                    }
                }
            }
        }
    })
    .find('[name="frameworks"]')
        .selectize({
            plugins: ['remove_button'],
            delimiter: ',',
            persist: false,
            create: function(input) {
                ...
                };
            }
        })
        // Revalidate the frameworks field when it is changed
        .on('change', function(e) {
            $('#selectizeForm').formValidation('revalidateField', 'frameworks');
        })
        .end();

但是通过这种方法,我甚至根本没有让我的相互依赖的下拉工作!

我真的很感激任何帮助!

1 个答案:

答案 0 :(得分:1)

不确定你是否仍然期待答案。无论如何想分享我的经验。我有类似的问题。我意识到,对于静态控件(文本框,下拉列表或div),选择初始化将正常工作,因为只要DOM(html)加载 selectize js为所有绑定ID执行其工作。而动态 控件,我们需要通过诸如的事件来调用seletize函数 "点击","鼠标悬停"。我曾经使用过mouseover事件。这个对我有用。