我有两个bootstrap selectpickers,其中一个是基于第一个动态填充选项。这部分似乎工作正常,但是,当我发布表单时,第二个选定的选项没有设置。无论您选择什么,它都会保留列表中的第一项。
我已经使用了selectpicker.refresh(),以便在select中正确填充值。这是我用以下代码填充动态选择的代码:
jQuery("#field_c7vkw42").empty(); //To reset courts
jQuery("#field_c7vkw42").append("<option value=''>--Select--</option>");
jQuery(arr).each(function(i) { //to list counties
jQuery("#field_c7vkw42").append("<option value=\"" + arr[i].value + "\">" + arr[i].display + "</option>")
jQuery('#field_c7vkw42').selectpicker('refresh');
如果您想查看实时表单https://funnydriving.com/aaabbb/,请在第2步选择法院。现在我有它验证,所以你会看到无论你选择它认为它是空的吗?
答案 0 :(得分:1)
好的,所以我相信我终于知道发生了什么,以防将来有人遇到这个问题。事实证明,jquerybootstrapvalidation.js(http://ReactiveRaven.github.com/jqBootstrapValidation)具有在表单提交时清除任何旧助手消息框的功能:
//for remove old error helpblock start
$inputs.each(function (i, el) {
var $this = $(el),
$controlGroup = $this.parents(".control-group").first(),
$helpBlock = $controlGroup.find(".help-block").first();
$this.trigger('change');
您可以看到,在每个表单元素上触发“更改”。这基本上是重置我的第二个动态框,因为它认为对第一个选择进行了更改。