2011-08-23 144 views
6

嗨我有一些麻煩讓這個工作,非常簡單,我想要做的是顯示一個div,一旦我的HTML表單被提交。表單提交後隱藏/顯示Div?

<head> 

<script type="text/javascript"> 
function showHide() { 
    var div = document.getElementById(hidden_div); 
    if (div.style.display == 'none') { 
    div.style.display = ''; 
    } 
    else { 
    div.style.display = 'none'; 
    } 
} 
</script> 

</head> 


<body> 

<form method="post" name="installer"> 

<label>Home Keyword</label> 
<br /> 
<input type="text" name="hello" value=""> 
<br /> 
<input type="submit" value="" name="submit" onsubmit="showHide()"> 

</form> 

<div id="hidden_div" style="display:none"> 
<p>Show me when form is submitted :) </p> 
</div> 

</body> 

任何幫助,將不勝感激謝謝:)

+0

移動onsubmit屬性的形式。另外,不要使用「提交」作爲表單控件名稱,因爲它會影響表單的提交方法。在上面,* form.submit *會引用控件,而不是方法,所以調用它會引發錯誤。 – RobG

回答

16

我認爲你只是在你的document.getElementById("hidden_div")通話缺少引號「hidden_​​div」!

但實際上,您的頁面可能會發回,重置頁面狀態,從而使hidden_​​div看起來總是處於隱藏狀態 - 您是否打算通過AJAX處理表單提交?

如果你想看到預期的行爲,應在showHide()呼叫轉移到<form>元素,並在其後返回false:

<form method="post" name="installer" onsubmit="showHide(); return false;"> 

,並留下提交按鈕爲:

<input type="submit" value="" name="submit" /> 

另請注意,您還沒有自行關閉<input />按鈕標籤,或者在其中顯示任何文字。

+0

謝謝科裏是的,這似乎做的伎倆,哈哈是的,我有我的原代碼中的引號,但他們迷失在翻譯,我認爲我的咖啡需要補足:P – Jessica

+0

沒有必要「關閉」輸入標籤,OP沒有表明XHTML正在被使用,並且在網絡上使用XHTML是非常罕見的。 – RobG

+0

@RobG:我只是通過'
'這個標籤來推斷它,但你可能是對的。 –

2

你需要把showhide功能的形式onsubmit,而不是input

<form method="post" name="installer" onsubmit="showHide()"> 

你還缺少報價爲@Cory提到