2011-10-11 113 views
0

我想使用javascript發佈數據到通用處理程序,但我無法上傳。Asp.net表單中的Html表單方法不發佈數據

任何人都可以建議我哪裏出錯了嗎?

這裏是我的代碼:

<script type="text/javascript"> 

     function postdata() { 
      var fieldValue = document.getElementById("field1").value; 
      postwith("Upload.ashx", { field1: fieldValue }); 
     } 

     function postwith(to, p) { 
      var myForm = document.createElement("form"); 
      myForm.method = "post"; 
      myForm.action = to; 
      for (var k in p) { 
       var myInput = document.createElement("input"); 
       myInput.setAttribute("name", k); 
       myInput.setAttribute("value", p[k]); 
       myForm.appendChild(myInput); 
      } 
      document.body.appendChild(myForm); 
      myForm.submit(); 
      document.body.removeChild(myForm); 
     } 

</script> 

這是我需要用表格做實際的事情:

<form id="Form1" action="Upload.ashx" method="POST" enctype="multipart/form-data" 
    runat="server"> 

正如我有一個母版頁我需要做的是這樣的:

<button type="submit" class="start" OnClientClick="postdata(); return false;"> 
       Start upload</button> 
+1

你用Firefox/Firebug看看請求是否被髮送?或者,如果有任何JavaScript錯誤? 'multipart/form-data'有什麼問題 - 你想上傳一個文件嗎? – tvanfosson

+0

沒有請求沒有發生,沒有javascript錯誤。 – coder

+0

它看起來像一個正常的HTML按鈕,所以你可能想用'onClick ='而不是'OnClientClick =' – MonkeyCoder

回答

0

而不是形式的方法,可以考慮使用的XmlHttpRequest:http://www.ibm.com/developerworks/web/library/wa-ajaxintro2/

如果您使用的是JQuery或Microsoft ASP.NET AJAX框架,有助手可以做到這一點,更容易(我相信JQuery與$.ajax和ASP.NET AJAX與Sys.Net.WebRequest)。

+0

你可以更清楚上面的示例如何修改它? – coder

+0

'XmlHttpRequest'不適用於'multipart/form-data'形式。 'FormData'對象可以提供幫助,但並未在所有瀏覽器中實現。 –