提交后如何关闭Bootstrap模式?

时间:2020-08-06 05:08:38

标签: javascript html jquery bootstrap-modal

在这里,我有一个Bootstrap模式。我的要求是,当我使用“提交”按钮成功提交表单时,我想在几秒钟后关闭模式。这里的问题是当我在输入中输入一些文本而不是整数时,或者如果我输入了一些无效的输入,然后当我单击“提交”按钮时,输入字段就会显示错误,并且模式会在几秒钟后立即关闭。

如果在单击“提交”按钮时输入字段无效,我不想关闭Bootstrap模式。

我该怎么办?

编辑:它与有效的输入完美配合。

html

 <div class="modal-body">
 <form action="">
     <input type="number" name="rows" min="0" value="0" max="10" required><br>
     <button type="submit" id="my_button" class="btn btn-info btn-sm">Submit</button>
 </form>
 </div>

脚本

<script>
 $('#my_button').click(function() {
    setTimeout(function() {$('#myModal').modal('hide');}, 4000);
});
</script>

2 个答案:

答案 0 :(得分:3)

如果表单具有无效值,请不要设置超时:

$('#my_button').click(function() {
  if ( ! $('form input:invalid' ).length ) {
    setTimeout(function() {$('#myModal').modal('hide');}, 4000);
  }
});

答案 1 :(得分:0)

请尝试此代码段

<div class="modal-body">
    <form action="">
        <input type="number" name="rows" min="0" value="0" max="10" required><br>
        <button type="submit" id="my_button" class="btn btn-info btn-sm">Submit</button>
    </form>
</div>

<script>
 $('#my_button').click(function() {
    setTimeout(function() {$('#myModal').modal('toggle');}, 4000);
});
</script>