javascript - 如何在单击 JavaScript 函数中的按钮时添加文本“请稍等...”
问题描述
我已经使用 JavaScript 创建了一些函数调用,并使其延迟 7 秒,现在我希望当用户单击按钮时,延迟时间开始后立即出现“请稍候...”文本(不在按钮文本中)。
“请稍候”文本应显示为标题标签(h3 或 h4 标签)
任何帮助/建议,请...
function yes() {
var button = document.getElementById('test');
var name = document.getElementById('name');
var age = document.getElementById('age');
var location = document.getElementById('location');
console.log("clicked on Test-Button");
var str = 'Hello! <p> My name is Ashish</p><p>How Are You: ' + name.value +
'';
document.getElementById('test').innerHTML = str;
};
<label>
Your Name:
<input id="name" />
</label>
<br />
<button onclick="setTimeout(yes, 7000)">Test</button> <!-- timeout -->
<p id="test"></p>
解决方案
最好通过 javascript (而不是 inline onclick
)附加 eventListeners - 在这种情况下,它为我们提供了一个很好的机会来执行 Please Wait... 插入 - 当完成的输出到达时,它会被覆盖(最好)。
window.addEventListener('load', () => {
document.querySelector('button.test-btn').addEventListener('click', e => {
document.querySelector('#test').innerHTML = '<h3>Please Wait...</h3>';
setTimeout(yes, 7000)
})
})
function yes() {
var button = document.getElementById('test');
var name = document.getElementById('name');
var age = document.getElementById('age');
var location = document.getElementById('location');
var str = 'Hello! <p> My name is Ashish</p><p>How Are You: ' + name.value +
'';
document.getElementById('test').innerHTML = str;
};
<label>
Your Name:
<input id="name" />
</label>
<br />
<button class='test-btn'>Test</button>
<p id="test"></p>
推荐阅读
- r - 测试自定义公式时“找不到对象 [x]”
- oracle - Oracle Apex 表中的最大记录
- flutter - Flutter:在 Android 设备上 Flutter 中不使用 websocket
- php - 使用 php api 登录多个 Instagram 帐户
- java - Android 相机 API2 不支持的文件格式
- javascript - 如何将base64解码为vue.js中输入类型文件中的文件格式?
- azure - 无法在本地运行 azure 函数调试 - 无法加载类型 Microsoft.Azure.WebJobs.Host.Scale.IScaleMonitorProvider
- android - 数据未在 MVVM 模型中的数据绑定示例中更新 - 将数据更新到模型和从模型更新
- parsing - 如何使用 megaparsec 报告多个错误?
- sqlite - 如何使用 lua 固件在 ESP8266 上运行 sqlite3?