将文件选项添加到当前表单字段

时间:2015-07-04 06:06:56

标签: javascript html image

我的网站上有反馈表。它非常基本,只有一个文本区域来提供用户反馈和提交。 现在我计划添加一个附加图片和反馈的选项。轻松添加另一个文本字段 我无法弄清楚如何将文件添加到JavaScript中。请建议将文件添加到以下脚本中所需的更改

function upload() {
  var feedback = _("feedback").value;
  var status = _("status");
  if (feedback == "") {
    status.innerHTML = "Empty";
  } else {
    status.innerHTML = 'please wait ...';
    var ajax = ajaxObj("POST", "feedback.php");
    ajax.onreadystatechange = function() {
      if (ajaxReturn(ajax) == true) {
        if (ajax.responseText != "ok") {
          status.innerHTML = ajax.responseText;
        } else {
          window.location = "thanks.php";
        }
      }
    }
    ajax.send("feedback=" + feedback);
  }
}
<form id="form1" enctype="multipart/form-data" onsubmit="return false;">
  <input id="feedback" type="text">
  <button id="submit" onclick="upload()">Submit Details</button>
  <span id="status"></span>
</form>

3 个答案:

答案 0 :(得分:0)

你在这里:

var x = document.createElement("input");
x.setAttribute("type", "file");
document.querySelector("#form1").appendChild(x);

希望得到这个帮助。

答案 1 :(得分:0)

除非您尝试使用ajax上传文件,否则只需将表单提交至feedback.php。

<form enctype="multipart/form-data" action="feedback.php" method="post">
  <input id="image-file" type="file" />
</form>

如果您想在后台上传图片(例如,不提交整个表单),您需要使用Flash,因为只有JavaScript才能执行此操作。

jQuery Ajax File Upload

Ajax using file upload

jquery easy example看一下第一个答案

答案 2 :(得分:0)

好的..所以有两件事你不会改变:

  1. 删除该标题(&#39; application / x-www-form-urlencoded&#39;)并添加&#39; multipart / form-data&#39;头而已。文件无法以urlencoded方式发送。

  2. 其次,在ajax请求中,您需要发送FormData对象,而不是以字符串形式发送反馈,该对象支持通过ajax上传文件:

    var myForm = $(&#34;#form1&#34;)[0]; var formData = new FormData(myForm); ajax.send(FORMDATA);

  3. 更新: 忘记提及:当然,您需要的第三件事是添加到您的表单中!