json提交发送表格

时间:2011-03-25 10:54:39

标签: jquery django json django-views getjson

在下面可以通过json请求发送一个表单,其中有一个文件和一个文本框。我在服务器端使用django

<script>
var uploadform=$("#upload_form").val();
function send_data(paramarr,url) {
    $.post(url, paramarr,
    function callbackHandler(ret) {

    },
    "json"
    );
}
</script>

<form id="upload_form">
    <input type="text" name="field_name" >Name:
    <input type="file" name="field_name" >Upload:
</form> 

4 个答案:

答案 0 :(得分:0)

您是否查看了jquery的serialize()函数?这允许您获取表单,将其序列化为字符串,并将其作为参数传递。

http://api.jquery.com/serialize/

var str = $("#upload_form").serialize();
$.post("test.php", str, function (ret){ 

},"json");

编辑:

我当然没有注意到它是文件上传。无法以这种方式上传文件。查看Uploadify

答案 1 :(得分:0)

您将无法通过post()或ajax()进行文件上传。您将需要使用iframe或使用帮助程序库,基本上只为您自动执行此操作。在jQuery plugin site中搜索大量备选方案。

答案 2 :(得分:0)

您可以通过从服务器获取表单标记来动态创建表单。但是,很少有问题

  1. 如果获取的数据包含JavaScript,则不会对其进行评估(例如,浏览器会忽略它。您必须手动评估它)
  2. 当您提交加载的表单时,它会提交整个页面(您必须使用Ajax仅提交该表单,并按原样保留其余页面。)
  3. 如果表单包含文件标签,它将不起作用(您需要通过创建隐藏框架,加载表单项,提交和删除隐藏表单来解决此问题)

答案 3 :(得分:0)

添加到jm_toball的关于无法通过post()或ajax()进行文件上传的说明,您可以尝试使用jQuery表单插件。我没有使用该插件进行文件上传,但他们的常见问题解答说他们的插件支持它:

http://jquery.malsup.com/form/#faq