为啥当我添加一个选择选项来选择表单字段时不会更改为有效?

Posted

技术标签:

【中文标题】为啥当我添加一个选择选项来选择表单字段时不会更改为有效?【英文标题】:Why when i add a select option to select the form field doesn't change to valid?为什么当我添加一个选择选项来选择表单字段时不会更改为有效? 【发布时间】:2020-10-12 19:41:07 【问题描述】:

我有这个代码,当我添加这个选定的选项时,表单字段仍然无效并且永远不会改变状态。我已经从表单实例中尝试了多种方法,但都没有奏效。

  $scope.disDeLoca = true;
  $scope.deLocalidad = "Ciudad Autonoma de Buenos Aires";
  $("select[name='localidadDos'] > option").remove();
        $("select[name='localidadDos']").append(
          '<option selected="true" value="C0001" disabled="true">Ciudad Autónoma de Buenos Aires</option>'
  );
  $scope.disBarrioDe = true;
  $scope.disSrchBtnDe = true;
  $("#deLocalidad").val("Ciudad Autónoma de Buenos Aires");

【问题讨论】:

【参考方案1】:

如果您使用 disable="true" 禁用该选项,那么它将保持禁用状态,直到您再次启用它。

所以,删除此代码:disabled=true

$("select[name='localidadDos'] > option").remove();

  $("select[name='localidadDos']").append('<option value="C0002" disabled>I am disabled</option>');     
  $("select[name='localidadDos']").append('<option value="C0002">Ciudad Autónoma de Aires</option>');
  $("select[name='localidadDos']").append('<option selected="true" value="C0001">Ciudad Autónoma de Buenos Aires</option>');
  $("select[name='localidadDos']").append('<option value="C0003">Ciudad de Buenos Aires</option>');
  
$("#deLocalidad").val("Ciudad Autónoma de Buenos Aires");

$('#form').submit(function (e) 
  e.preventDefault();
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="form">
  <select name="localidadDos" required>
    <option>This is an example</option>
  </select>
  <input type="submit" value="submit">
</form>

【讨论】:

以上是关于为啥当我添加一个选择选项来选择表单字段时不会更改为有效?的主要内容,如果未能解决你的问题,请参考以下文章

选择时表单中的重复字段

如何在颤动中选择基于下拉项添加文本字段值

反应表单钩子如何验证选择选项

使用 jquery 在选项选择的基础上添加新的表单输入字段

选择下拉选项时在表单中添加输入字段

隐藏输入/选择时,表单字段标签不会隐藏