2017-11-11 17 views
1

我希望文本框在通過POST方法發送數據後消失。 但我不能讓Javascript工作。頁面不斷重新加載,因此,文本框始終存在。使用javascript無法生效的樣式更改

<script> 
function puff() 
{ 
if (document.getElementById("updat").style.display == "block") 
    document.getElementById("updat").style.display = "none"; 
else 
    document.getElementById("updat").style.display = "block"; 
} 
</script> 
</head> 
<body> 
<div class="container" id="upd"> 
    <form class="form-signin" action="rough_page.php" method="POST"> 
    <div class="input-group" id="updat"> 
    <input type="text" name="text1" class="form-control" value=""/> 
    <input type="text" name="text2" class="form-control" value=""/> 
    <input type="text" name="text3" class="form-control" value=""/> 
    <input type="text" name="text4" class="form-control" value=""/> 
    <input type="hidden" name="flag" class="form-control" value=""/> 
    </div> 
    <button class="btn btn-lg btn-primary btn-block" onclick="puff()" type="submit">Update</button> 
    </form> 
</div> 
</body> 

當我按一下按鈕我想要的文本框消失,我想希望他們重新出現,一旦我再次單擊該按鈕。

+1

https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started – Andreas

+0

可以使用jQuery嗎? –

回答

2

試試這個:

function puff() { 
    var x = document.getElementById("updat"); 
    if (x.style.display === "none") { 
     x.style.display = "block"; 
    } else { 
     x.style.display = "none"; 
    } 
} 
2

注意,你在做一個表單提交每次按下按鈕,因此時間,瀏覽器必須「重新加載」的頁面。我把報價,因爲它不是一個真正的重新加載。如果你放在其他目的地,你會看到你去到另一個頁面,因爲它是表單目的地。

如果你想避免重新加載,有幾種方法可以做到這一點,比如阻止提交事件,將提交類型按鈕更改爲普通按鈕......有些比其他更正確。

然後你應該用AJAX處理你的請求,就像@Andreas建議你的那樣。

當你這樣處理你的請求時,你可以用你正在顯示或不顯示的文本框來解決問題,就像@Rahele建議你的例子。

無論如何,試着看一看JavaScript文檔,因爲整個事情聽起來像你不明白表單如何提交工作的一些基本知識。

相關問題