2012-12-07 86 views
4

我是新來的JavaScript和每一個簡單的事情,我得到某種問題,但這似乎un-solve-able我。我GOOGLE了,沒有什麼simillar。輸出消失Javascript簡單innerHTML

在我輸入數據到文本框並將其存儲到變量後,我打印出段落中的變量。 問題是我打印輸出消失在小於秒。代碼似乎是正常的,它可能是什麼?它看起來像c,當你不把getch(); 在此先感謝。

<form>Unesite broj koji ce se ispisat kasnije.<br> 
<input type="text" id="userInput"> 
<input type="submit" name="unos" value="Unesi i ispisi" onclick="unesi()"><br><br> 

</form> 
    <br><br> 
<p>Unjeli ste <b id="ispis"></b></p> 
<script> 
function unesi(){ 
var userInput = document.getElementById('userInput').value; 
document.getElementById('ispis').innerHTML = userInput; 
} 

</script> 
+0

你用按鈕提交表單,則嘗試從「提交」到「按鈕」 –

回答

4

<form>標籤不指定action屬性,所以當你點擊提交按鈕,瀏覽器將提交表單到當前的URL - 這看起來很像網頁刷新。

如果你想,當用戶點擊提交運行unesi功能,防止HTML表單提交從,你需要稍微改變:

<input type="submit" name="unos" value="Unesi i ispisi" 
     onclick="unesi(); return false;"> 

return false防止形式從提交本身。

+0

感謝您的回覆,我現在明白了,我不會解釋。但是,我們的代碼並沒有做任何好的事情,它仍然在刷新只有工作的東西是從代碼中刪除

。 –

+0

太棒了!這工作 –

1

因爲表單提交併刷新頁面。取消表單請求。

<input type="submit" name="unos" value="Unesi i ispisi" onclick="return unesi()"> 

和功能

function unesi(){ 
    var userInput = document.getElementById('userInput').value; 
    document.getElementById('ispis').innerHTML = userInput; 
    return false; 
} 

更好的選擇是做它的形式層面

<form action="#" method="get" onsubmit="return unesi()"> 
+0

我做你的第一個選項,它仍然被刷新,以及第二... 唯一的工作是從除去可更換式碼。 非常感謝,如果沒有我的幫助,我不會理解它。 –

1

沒有取消的形式提交的,另一種選擇是改變

<input type="submit" name="unos" value="Unesi i ispisi" onclick="unesi()"> 

<input type="button" name="unos" value="Unesi i ispisi" onclick="unesi()"> 

這將使這樣的形式不試圖提交的所有按鈕被按下時, 。

+0

謝謝,非常有幫助的意見。 –