javascript - 将文本字段中的值转换为段落
问题描述
我正在尝试填写表格并从中生成一封电子邮件,但规模很大。HTML 代码如下,位于https://jsfiddle.net/csq7kwmb/4/:
<form class="form">
<label>Merchant name <input type="text" class="mName" value=""></label><br>
<label>Merchant ID number <input type="text" class="mId" value=""></label><br>
<label>Merchant email <input type="text" class="mEmail" value=""></label><br>
<button onclick="generateEmail()">
Generate
</button>
</form>
<p class="paragraph">
Merchant name is <span class="merchantN"></span>, merchant ID is <span class="merchantID"></span> and his email is <span class="merchantE"></span>.
</p>
function generateEmail() {
//generated email variable
var email = document.querySelector('.paragraph');
//input
var merchantName = document.querySelector('.mName');
var merchantId = document.querySelector('.mId');
var merchantEmail = document.querySelector('.mEmail');
//output
var paragraphName = document.querySelector('.merchantN');
var paragraphId = document.querySelector('.merchantID');
var paragraphEmail = document.querySelector('.merchantE');
//var paragraph = document.getElementById('field2');
//properly filled email
paragraphName.textContent = merchantName.value;
paragraphId.textContent = merchantId.value;
paragraphEmail.textContent = merchantEmail.value;
//displaying email, giding text fields
merchantName.style.display = none;
merchantId.style.display = none;
merchantEmail.style.display = none;
email.style.display = block;
}
当我在本地执行此操作时,该页面只会刷新。
解决方案
发生的事情是因为您有<button>
一个元素内部<form>
,当您单击按钮时,表单正在执行其提交操作,这会导致页面刷新。您需要做的是防止您的表单被提交或将您的按钮放在表单之外。
按钮外部形式:
<form class="form">
<label>Merchant name <input type="text" class="mName"></label><br>
<label>Merchant ID number <input type="text" class="mId"></label><br>
<label>Merchant email <input type="text" class="mEmail"></label><br>
</form>
<button onclick="generateEmail()">
Generate
</button>
<p class="paragraph">
Merchant nname is <span class="merchantN"></span>, merchant ID is <span class="merchantID"></span> and his email is <span class="merchantE"></span>.
</p>
防止表单提交:
<form class="form" onsubmit="return false;">
<label>Merchant name <input type="text" class="mName"></label><br>
<label>Merchant ID number <input type="text" class="mId"></label><br>
<label>Merchant email <input type="text" class="mEmail"></label><br>
<button onclick="generateEmail()">
Generate
</button>
</form>
<p class="paragraph">
Merchant nname is <span class="merchantN"></span>, merchant ID is <span class="merchantID"></span> and his email is <span class="merchantE"></span>.
</p>
推荐阅读
- c++ - C++ 语法中的函数指针
- python - 是否有将两个列表中的匹配索引对连接到二维列表中的功能?
- python - Python xml树结构
- python - PCA 如何计算“sklearn”中的转换版本?
- sql - 在 SQL 中透视和取消透视具有多列和多行的表
- python-3.x - 而在 py3 中的 nltk 中的 cicle
- variable-assignment - 在 Firebird 的 SQL 编辑器上下文中分配变量
- phpexcel - PHPSpreadsheet 加载 CSV 设置默认数据格式
- node.js - 无服务器部署后未创建端点
- c# - 使用 Simple Injector 为 Log4Net 实现 Logger 类