【问题标题】:How to clear the fields and reset the form inside a modal after closing?关闭后如何清除字段并重置模式内的表单?
【发布时间】:2019-06-25 20:15:21
【问题描述】:

我在模态框内有一个表单,其中的字段在加载时带有红色边框,表明这些字段是必填的。当我填写每个字段时,红色边框会消失。当我关闭模式时,字段被清除但红色边框不再可见,这意味着字段不再是强制性的,因此用户无需填写必填字段即可成功提交表单。我该如何解决?请帮忙。

此功能确实清除了字段,但之后字段不再是必需的。

$scope.clearFields = function() {
        $('#orderForm').on('hidden.bs.modal', function () {
            $(this).find('form').trigger('reset');
        });
    };

这是我的模态代码。

 <div class="form-group col-md-12" ng-class="{'has-error': !hwmodel.length}">
    <label for="hwmodel" class="control-label label-bold">Hardware Brand/Model</label>
    <div>
        <textarea class="form-control" name="hwmodel" id="hwmodel" ng-model="hwmodel" maxlength="500" style="height:65px;"></textarea>
    </div>
</div>

【问题讨论】:

  • 红色边框并不强制要求它们只是样式。您添加了更多代码或解释了强制执行的原因
  • 如何判断某个字段是否为必填项并阻止用户提交表单?表格看起来如何?请包含Minimal, Reproducible Example
  • 我有这行:
  • 任何人都可以评论他们的电子邮件,以便我可以发送我的模态屏幕截图吗?对不起。我真的不知道如何使用stackoverflow。感谢理解
  • 使用 document.getElementById("myForm").reset();$("#myForm").reset(); 或试试这个链接 [w3schools.com/angular/angular_validation.asp] 以获得正确的验证理解

标签: javascript html


【解决方案1】:

如果您这样做,那么它只会在输入字段中输入文本。 $(this).closest('form').find("input[type=text]").val(""); 所以有更好的方法来做到这一点。如果您知道所有字段,则创建一个函数并在无法对它们进行分组时将逻辑一一重置所有字段的数据。可能您可以使用某些字段的 id 和某些字段的名称来做到这一点。并在关闭模态之前调用它。这种方式更好,因为将来您可能会添加更多/不同类型的字段。

【讨论】:

    【解决方案2】:

    替换为:

     $(this).closest('form').find("input").val("");
    

    【讨论】:

    • 我有 textarea 和 sn-record-picker。
    • ok 所以你需要把它改成: $(this).closest('form').find("input[type=textarea]").val("");用于文本区域。对于 sn-record-picker,您应该阅读该插件的文档。
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签