javascript - 如何从输入字段中获取数值到 Bootstrap 模式?
问题描述
这应该是一项微不足道的任务,但由于某种原因,我无法将输入字段中的值传递/获取到 Boostrap 4 模态。当我使用以下代码时,它确实显示了所有信息,但显示了 input 的值this.qtyAskValue = document.querySelector("#qtyAsk").value.trim()
。知道我的 JS 代码有什么问题吗?我正在尝试用普通的 JS 解决这个问题。
HTML
<input type="number" id="qtyAsk" name="qtyAsk" placeholder="0">
<button type="button" id="buyTicket" class="btn btn-primary" data-toggle="modal" data-target="#exampleModalCenter">Buy</button>
JavaScript
const buyTicket = document.querySelector("#buyTicket")
buyTicket.addEventListener("click", getModalInfo)
class UI {
constructor() {
this.show = document.querySelector("#modalContent")
this.qtyAskValue = document.querySelector("#qtyAsk").value.trim()
}
showData() {
this.show.innerHTML = `<div class="modal-header">
<h5 class="modal-title" id="exampleModalCenterTitle">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">
<p>You are placing an order for ${this.qtyAskValue} shares</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>`
}
}
const ui = new UI()
function getModalInfo() {
ui.showData()
}
解决方案 -根据@Chris G编写的JavaScript - 这里的主要问题是构造函数在用户选择值之前很久就运行了。像这样的陈述this.qtyAskValue = document.querySelector("#qtyAsk").value.trim()
不会延伸到未来;它在被调用时运行一次,然后再也不会运行,除非你再次调用它。因此this.qtyAskValue
将保留""
(因为这是初始值)。
const buyTicket = document.querySelector("#buyTicket")
buyTicket.addEventListener("click", getModalInfo)
class UI {
constructor() {
this.show = document.querySelector("#modalContent")
}
showData() {
const qtyAskValue = document.querySelector("#qtyAsk").value.trim()
this.show.innerHTML = `<div class="modal-header">
<h5 class="modal-title" id="exampleModalCenterTitle">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">
<p>You are placing an order for ${qtyAskValue} shares of at</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>`
}
}
const ui = new UI()
function getModalInfo() {
ui.showData()
}
解决方案
推荐阅读
- r - R - 创建检查多个数据帧中的 NA 的数据帧
- node.js - 使用节点获取特定 Postgres 数据库中的所有表?
- jenkins - Jenkins groovy 全局库声明性管道错误
- python - 沿非重复字符之间的边界拆分字符串
- node.js - 当我以角度删除对象时,令牌在nodejs中无效
- java - VideoView 错误,当我通过 url 加载视频时
- python - 百分比格式不会更改为浮动 - 熊猫
- doctrine - 在单元测试模拟中抛出 \Doctrine\DBAL\Driver\DriverException
- azure - 在远程服务器上运行集成测试
- ruby-on-rails - Rails 活动存储 Blob 和附件的软删除