2014-01-17 110 views
-1

下面的代碼只顯示在頁面的加載時間段「測試」,然後將其disappears..please建議爲什麼我的html輸出消失?

<input style="margin-left:40px;" type="submit" value="submit" name="submit" onclick="myFunction()"></input> 

<script> 
function myFunction() 
{ 
document.getElementById("div6").innerHTML="Test"; 
} 
</script> 
+6

表單提交後,頁面會刷新。你想防止表單提交?或者你想在提交後堅持「測試」消息? – showdev

+3

我看不到具有div6 ID的元素。 – j08691

+0

@showdev我希望測試郵件在提交後保留 – ginter

回答

1

一旦表單被提交,頁面將被重新加載而不會出現「測試」消息。由於您希望「測試」消息在提交表單後保留,因此我建議使用一些服務器端代碼來有條件地顯示它(如果表單已提交)。

使用PHP,它會去是這樣的:

<?php 

// determine if the form was submitted 
$submitted=isset($_POST['submitted']) ? true : false; 

?> 

<form method="post" onsubmit="myFunction();" > 
    <input type="submit" value="submit" name="submitted" /> 
</form> 

<!-- echo message if form was submitted --> 
<div id="div6"><?php echo $submitted ? "Test" : ""; ?></div> 

<script> 
function myFunction() { 
    document.getElementById("div6").innerHTML="Test"; 
} 
</script> 

或者,您可以submit the form using AJAX使頁面不會重新加載。
但這是一個不同的故事。

0

使用此:

function myFunction(event) { 
    event.preventDefault(); 
    document.getElementById("div6").innerHTML="Test"; 
} 

乾杯。

+0

剛纔我已經嘗試過了......現在,沒有隻有頁面加載後,但也從頁面加載開始「測試」不出現 – ginter

0

表單正在提交,頁面正在重新加載。這就是爲什麼你的文字是「消失」。由於按鈕是一個提交按鈕,只要函數返回true(默認),表單就會提交。您可以通過返回false來防止這種情況:

<input style="margin-left:40px;" type="submit" value="submit" name="submit" onclick="myFunction(); return false"/> 

<script> 
function myFunction() 
{ 
    document.getElementById("div6").innerHTML="Test"; 
} 
</script> 
+0

我已經嘗試過,但不幸的是我仍然面臨同樣的麻煩 – ginter