在FomanticUI中动态更新必填字段不会删除必填UI元素

问题描述

这是正在发生的事情的JS小提琴:https://jsfiddle.net/perezdev/r5qg3xsa/18/。我正在动态设置JSON的必填字段。如果从第一个下拉列表中选择“必需”,则第二个下拉列表将成为必需的并立即生效。如果您从第一个下拉列表中选择“不需要”,则不再需要第二个下拉列表,但UI不会更新。每次更改后,我都在验证表单,并尝试使用remove states,不使用它。

HTML:

<form id="test" class="ui form">
  <div class="field">
    <select id="field1" class="ui selection clearable dropdown">
      <option value=""></option>
      <option value="0">required</option>
      <option value="1">Not required</option>
    </select>
  </div>

  <div class="field">
    <select id="field2" class="ui selection clearable dropdown">
      <option value=""></option>
      <option value="0">required</option>
      <option value="1">Not required</option>
    </select>
  </div>
</form>

JS:

$(document).ready(function() {
  $('#field1').dropdown({
    'onChange': function(value,text,$choice) {
                var required = value == 0 ? true : false;
        SetrequiredFields(required);
    }
  }); 
  
  $('#field2').dropdown(); 
});

function SetrequiredFields(required = false) {
    var formFields = GetrequiredFields(required);
    $('.ui.form').form({
        on: 'blur',inline: true,fields: formFields,});
    
    $('.ui.form').form('remove states');
    $('.ui.form').form('validate form');
}

function GetrequiredFields(required = false) {
  var fields = {};

  if (required) {
    var assignedToJson = {
      field2: {
        rules: [{
          type: 'empty',prompt: 'Assigned to person is required for this group.'
        }]
      }
    };
    $.extend(fields,assignedToJson);
  }
  
  return fields;
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...