2013-05-07 62 views
0

我有一個函數,如果條件滿足,我應該在P元素中顯示消息。該函數運行正常,但當您按下按鈕然後消失時,發送到'output1'的文本會短暫出現。我曾嘗試將JS放在頭部和身體中,但它似乎沒有什麼區別。有任何想法嗎?謝謝。由innerHTML修改的文本不會保持可見

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> 
+0

按鈕是否也提交表單(或執行其他導航)? – nnnnnn 2013-05-07 11:06:37

+0

兩個字:防止默認 – Brainfeeder 2013-05-07 11:07:17

回答

0

你還沒有告訴我們你是如何調用該函數,但賠率是,你是在響應這樣做的表單提交按鈕被按下。

這將修改DOM,然後提交表單,這將導致加載新頁面。

您需要取消表單的默認行爲來停止提交。

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

好的。它被稱爲: 所以我需要取消提交按鈕的默認行爲? – Hubbs 2013-05-07 11:22:17

+1

我通過在按鈕元素中添加「type =」按鈕「'來解決此問題。感謝所有幫助。 – Hubbs 2013-05-07 11:25:45

3

innerHTML不能保持可見的原因是因爲有某種類型的onclick方法正在重置表單。如果是這樣,編輯你的onclick方法是這樣的:

onClick="function();return false;" 

這裏的改變是; return false;