被innerHTML修改过的文本不会保持可见
Text modified by innerHTML won't stay visible
我有一个函数,如果满足条件,它应该在p元素中显示一条消息。该函数运行良好,但发送到'output1'的文本在您按下按钮时短暂出现,然后消失。我试过把JS在头部和身体,但它似乎没有什么不同。什么好主意吗?谢谢。
HTML:<p id="output1"><p>
Javascript: <script>
function logicProcess() {
// alert('function launched');
if(document.getElementById('q1Y').checked || document.getElementById('q2Y').checked || document.getElementById('q3Y').checked) {
document.getElementById("output1").innerHTML = "Sorry, you don't qualify for our shared ownership properties";
}
else {
document.getElementById("output1").innerHTML = "You may qualify for our shared ownership scheme. Please complete the registration form.";
}
}
</script>
innerHTML不可见的原因是因为有某种类型的onclick方法正在重置表单。如果这是真的,像这样编辑你的onclick方法:
onClick="function();return false;"
这里的变化是;返回false;
你没有告诉我们你是如何调用这个函数的,但是很有可能你是在响应一个表单的提交按钮被按下。
这将修改DOM,然后提交表单,这将导致加载一个新页面。
你需要取消表单的默认行为来阻止它被提交。
function logicProcess(evt) {
// All your other code
evt.preventDefault();
}
document.getElementById('myForm').addEventListener('submit', logicProcess);
我认为你使用的是输入类型submit,所以submit按钮的含义是提交表单并重新加载它,这就是为什么你的输出不包含内部html。改为
<input type="button" />
相关文章:
- 为什么火狐在我更改 innerHTML 时会选择文本
- 获取innerHTML,但输入和文本区域都为空
- 将包含 javascript 的文本绑定到模板中的 innerHTML
- innerHTML文本框在键入文本后不起作用
- 删除总是与innerHTML不同的文本(没有Jquery)
- 在 innerHTML 中设置一些初始文本
- 选中复选框时用 innerHTML 添加的文本,取消选中时不会删除
- Javascript InnerHTML 文本不会更改
- 使用 .innerHTML 设置文本并更改 href
- 获取内部文本并将其拆分.使用innerHTML和split的Javascript问题
- 如何使用jquery或javascript使用选定的下拉选项文本设置innerhtml
- 无法通过getText()或getAttribute(“innerHTML”)获取文本
- innerHTML没有html,只有文本
- 根据活动ID引导程序3更改innerHTML文本
- innerHTML未能将文本注入标记中
- 获取innerHTML值-仅限纯文本
- 用正方形空间上的文本更改innerHTML
- 将内容可编辑文本的innerHTML转换为普通字符串
- 如何在javascript中传递achor文本innerHtml
- 使用javascript添加文本innerHTML时,document.getElementById(..)为空