innerHTML修改的文本将不会保持可见

时间:2013-05-07 11:04:58

标签: javascript innerhtml

我有一个函数,如果符合条件,它应该在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>

2 个答案:

答案 0 :(得分:3)

innerHTML不能保持可见的原因是因为某种类型的onclick方法正在重置表单。如果是这样,请编辑你的onclick方法,如下所示:

onClick="function();return false;"

这里的变化是; return false;

答案 1 :(得分:0)

你没有告诉我们你是如何调用这个函数的,但是你可能会这样做是为了响应表单的提交按钮被按下。

这将修改DOM,然后提交表单,这将导致加载新页面。

您需要取消表单的默认行为才能停止提交。

function logicProcess(evt) {
    // All your other code
    evt.preventDefault();
}
document.getElementById('myForm').addEventListener('submit', logicProcess);