- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在使用Vex-Modals到目前为止,但现在想尝试 bootstrap 4。我读了全文 Modal-Page of bootstrap.com ,但我没有找到像在 vex 中那样容易获取模态表单数据的方法。
到目前为止我发现:这是可能的:
$('#myModal').on('hide.bs.modal', function (e) {
// ask value of $("#form-input1")
// ask value of $("#form-input2")
// ask value of $("#form-input3")
})
Vex 使用一个回调,当我单击Ok
并调用回调时,其参数data
(一个对象)保存了所有这些值。
最佳答案
您可以做的最简单的事情是将模态标记创建为 <form>
。这将允许您访问 .modal()
和 <form>
来自各种事件(例如 hidden.bs.modal
)处理程序的对象为 this
.
当您有权访问表单本身时,您可以使用 .serializeArray()
jQuery 方法或使用 native FormData
类如下例所示。
$('#modal-form').on('hidden.bs.modal', function (event) {
// `this` is the modal window, which is also a `<form>` in our case
// Option 1: using `.serializeArray()` of jQuery
var fieldsAsArray = $(this).serializeArray();
console.log('fieldsAsArray', fieldsAsArray);
// Option 2: using native `FormData` object
var fieldsAsFormData = new FormData(this);
console.log('fieldsAsFormData', fieldsAsFormData);
});
<!-- Note the `<form>` tag -->
<form class="modal fade" id="modal-form" tabindex="-1" role="dialog" aria-labelledby="modal-dialogLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modal-dialogLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<!-- actual form markup -->
<div class="form-group">
<label for="field1">Example label</label>
<input name="field1" type="text" class="form-control" id="field1" placeholder="Example input">
</div>
<div class="form-group">
<label for="field2">Another label</label>
<input name="field2" type="text" class="form-control" id="field2" placeholder="Another input">
</div>
<!-- /actual form markup -->
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button id="save" data-dismiss="modal" type="submit" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</form>
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#modal-form">
Open modal form
</button>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/js/bootstrap.min.js"></script>
注意:即使“保存更改”按钮的类型为提交,表单也不会以这种方式直接提交,因为有 data-dismiss="modal"
属性也是如此。该属性捕获带有 event.preventDefault();
的点击事件。称呼。我相信这适合您的场景,因为您希望在不先提交表单数据的情况下处理表单数据。
关于jquery - 有没有简单的方法可以获取 Bootstrap 4 中模态的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48032483/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!