Twitter bootstrap 模式中TEXTAREA的内容在重新打开时保持不变
我在Bootstrap 4模式对话框中有一个Twitter bootstrap 模式中TEXTAREA的内容在重新打开时保持不变,twitter-bootstrap,bootstrap-4,bootstrap-modal,Twitter Bootstrap,Bootstrap 4,Bootstrap Modal,我在Bootstrap 4模式对话框中有一个textarea,如下所示: <div class="modal fade" id="updateTitle" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"&g
textarea
,如下所示:
<div class="modal fade" id="updateTitle" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<div class="modal-title">Update title of ticket</div>
<button class="close" data-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<form>
<div class="form-group">
<textarea id="titleText"></textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button class="btn btn-primary">Save changes</button>
<button class="btn btn-secondary" type="button" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
</div>
<p id="title">Test</p>
$("#updateTitle").on("show.bs.modal", function(event) {
$("#titleText").text($("#title").text());
})
我还没有添加代码来保存更改。我在textarea
中测试了修改文本,取消了对话框并再次打开。重新打开时,text区域
显示修改后的文本,而不是$(“#title”).text()
例如,如果我将Test
更改为Test123
,则在重新打开时显示Test123
,即使上面的脚本代码已将其恢复为Test
我设置了一个断点,可以确认每次打开对话框时都执行了上述脚本。但是,textarea
只是不显示
这是故意的吗?您看到的问题是因为您在
show.bs.modal
上更改了
的文本,但当您在该
上键入时,实际上是在设置其值
关于这一点,它说:
.text()方法不能用于表单输入或脚本。要设置或获取输入或textarea元素的文本值,请使用.val()方法
因此,修复方法是使用.val()
:
小提琴:嗯。。。我认为
textarea
与input
不同。谢谢
$("#updateTitle").on("show.bs.modal", function(event) {
$("#titleText").val($("#title").text());
});