You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap模态框执行JS验证函数后自动关闭,需保持打开状态求助

解决Bootstrap模态框在JS验证后自动关闭的问题

我一眼就发现问题所在啦——你的「Done」按钮同时绑定了data-dismiss="modal"和ng-click="validate(infoWithStatus)",这个data-dismiss是Bootstrap的原生属性,点击按钮时会立刻触发模态框关闭,和你的验证函数是同步执行的,所以不管验证结果如何,模态框都会被关掉。

要实现「验证通过才关闭,不通过就保持打开」的效果,只需要两步调整:

1. 移除按钮上的data-dismiss="modal"属性

把原来的Done按钮代码改成这样,让按钮不再自动触发模态框关闭:

<button type="button" class="btn btn-primary waves-effect waves-light" ng-click="validate(infoWithStatus)">Done</button>

2. 在validate函数中手动控制模态框的关闭

修改你的Angular控制器里的validate函数,根据验证结果决定是否关闭模态框:

$scope.validate = function(infoWithStatus) {
    // 这里编写你的验证逻辑,比如检查选中项是否完成必要选择
    let isValidationPassed = true;

    // 举个示例:遍历所有条目,检查选中的SPOC是否都选择了角色
    infoWithStatus.forEach(item => {
        if (item.checked && !item.selectedRole) {
            isValidationPassed = false;
            // 这里可以给用户提示,比如用Angular的消息组件或者原生alert
            alert('请为选中的SPOC选择角色!');
        }
    });

    // 验证通过时,手动调用Bootstrap方法关闭模态框
    if (isValidationPassed) {
        $('#responsive-modal3').modal('hide');
        // 这里可以添加验证通过后的后续逻辑,比如提交数据等
    }

    // 验证不通过时,无需额外操作,模态框会保持打开状态
};

这样修改后,点击Done按钮会先执行你的验证逻辑,只有当验证完全通过时,模态框才会关闭;如果验证失败,模态框会继续留在页面上,方便用户修正内容。

内容的提问来源于stack exchange,提问作者Nishant Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 06:50:43