2011-09-23 74 views
0

我在html中獲得了一個驗證用戶輸入的表單。問題是即使在本地主機上跳轉到「操作」頁面也需要很長時間。繼承人的代碼提交表單時的性能問題

<form action="Activity.php" method="GET" > 

<div style="display:none"> 
<input type="text" id="chapter" name="chapter"/> 
<input type="text" id="book" name="book"/> 
<input type="text" id="activity" name="activity"/> 
</div> 

<input type="image" src="includes/file.png" onClick="return validateForm()" title="Create New Activity" > 

</form> 

爲validateForm的代碼是:

function validateForm() 
    { 
     document.body.style.cursor='wait'; 
     if(document.getElementById("book").value==null || document.getElementById("book").value=="" 
        || document.getElementById("chapter").value==null || document.getElementById("chapter").value=="") 
     { 
      document.body.style.cursor='default'; 
      alert("You cannot create an activity at the selected location."); 
      return false; 
     } 



     var name=prompt("Please enter the New Activity Name","New Activity Name"); 
     if (name==null || name=="") 
     { 
      document.body.style.cursor='default'; 
      return false; 
     } 

     document.getElementById('activity').value=encodeURI(name); 
     return true; 

    } 

如果刪除上述功能的提示,它會立即跳轉到activity.php頁面,但如果我保持提示,並要求活動名稱,需要很長時間才能加載所需的頁面(可能需要注意表單提交過程被提示中斷,並且點擊提示'OK'按鈕提交會再次啓動!!不知道:S)應該是什麼一個解決方案(一個快速的)在提交表單時從用戶處獲得輸入?謝謝!!

+0

爲什麼你使用'prompt'來收集信息來放置表單?你不是擊敗了表格的目的嗎? –

+0

你的方法有太多不正確的東西。爲什麼不使用在表單提交時驗證的標籤? – pacman

+0

@pacman:我確實試過這個,看看它是否有所作爲,但它的力量。我正在使用輸入類型圖像,我需要一個圖像作爲用戶可以點擊的按鈕。 – samach

回答

0

此對象不存在:document.getElementById('activity')

+0

對不起,它確實存在!輸入錯誤。編輯它。感謝您指出! – samach

1

試試這個。

function validateForm() 
    { 
     document.body.style.cursor='wait'; 
     if(document.getElementById("book").value || document.getElementById("chapter").value) 
     { 
      document.body.style.cursor='default'; 
      alert("You cannot create an activity at the selected location."); 
      return false; 
     } 



     var name=prompt("Please enter the New Activity Name","New Activity Name"); 
     if (name) 
     { 
      document.body.style.cursor='default'; 
      return false; 
     } 

     //document.getElementById('activity').value=encodeURI(name); 
     return true; 

    }