2011-10-11 102 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'对象可以提供帮助,但并未在所有浏览器中实现。 –