devilken
   
發文: 2
積分: 0
|
於 2008-02-19 12:24
     
之前試著做一個簡單的JSP聊天室,主要是參考書本範例改的,但發現點小問題 程式與法如下 <Script Language = "javascript"> <!-- function checkdata() { if(frmMsg.Msg.value == "") return ; //是空值時直接中斷函數的執行 else { frmMsg.submit(); //將表單資料送出 frmMsg.Msg.value = ""; //清除Msg欄中的值 frmMsg.elements(0).focus(); } } --> </Script> </HEAD> <BODY> <FORM Action = "PostMsg.jsp" method = post name = frmMsg target = "chat"> <%= User %> : <INPUT type=text name="Msg" > <INPUT type="button" value="發言" onClick = "checkdata()"> <INPUT name=reset1 type=reset value=重寫> </FORM>
這段是發言區的程式碼,基本上用滑鼠點擊"發言"沒問題,文字正常輸出並且清空"Msg"欄位值 但若是按下Enter也能正常輸出但無法清空"Msg"欄位值 於是我在另外寫一個function function checkEnter { if(e.keyCode==13){ checkdata() } } 然後用onKeyDown="checkEnter(event)"呼叫,果真按下Enter後能清除文字欄位 但輸出值居然變成兩行!!,一行是輸入的文字,另一行卻是空值 想了半天發現,Enter鍵也等於submit() 所以照程式碼的執行的順序,就是先輸出後清空欄位值 然後本身Enter鍵又輸出一次,才造成產生兩行的結果 那要如何才能正確顯示並且清空欄位呢? 本人還是初學者,麻煩指點一下 謝謝
 
|