我使用這樣的JavaScript基於一個下拉選擇類似下面加載不同的形式:使用Javascript/PHP重新填充下拉失敗
<select id = "opts" onchange = "showForm()">
<option value = "0">Select Option</option>
<option value = "1">Option 1</option>
<option value = "2">Option 2</option>
</select>
<div id = "f1" style="display:none">
<form name= "form1">
Content of Form 1
</form>
</div>
<div id = "f2" style="display:none">
<form name= "form2">
Content of Form 2
</form>
</div>
<script type = "text/javascript">
function showForm(){
var selopt = document.getElementById("opts").value;
if (selopt == 1) {
document.getElementById("f1").style.display="block";
document.getElementById("f2").style.display="none";
}
if (selopt == 2) {
document.getElementById("f2").style.display="block";
document.getElementById("f1").style.display="none";
}
}
</script>
我已刪除了實際上形成細節,因爲事不在此刻。不管怎麼說,當表單提交它通過一系列驗證的:
if (isset($_POST['submitted'])) {
//validation codes
}
這個偉大的工程,但如果驗證失敗,它重新加載頁面,因此重置下拉框,並且沒有顯示出以前選擇的選項。我希望它保持以前的選擇,或只是例如在提交失敗時將選擇1加載到javascript位。有任何想法嗎?
伊恩
爲什麼在JavaScript的結尾?它應該在頁面上,最好在頭部。 – mplungjan
謝謝。我做了一些非常類似的驗證後,它重新加載選項1和驗證表單2重新加載選項2. – snookian
你試過我的建議嗎?這裏沒有顯示/隱藏你的函數中的標籤,除非選項CHANGE。無論如何我都會顯示/隱藏 – mplungjan