表单中的文本框数据 - 未在AJAX提交时传递

时间:2014-10-27 14:45:51

标签: javascript html ajax

文本框(id:handle)没有通过AJAX提交的帖子传递数据。

形式:

  <form method="post" accept-charset="utf-8" name="form1">
 <LABEL for:="handle">Twitter Handle </LABEL>
 <INPUT type="text" id="handle" value="@">
 <input name="hidden_data" id='hidden_data' type="hidden"/>
 </form>

我有一个按钮:

     <input type="button" id="sharebutton" onclick="uploadEx()" value="Share" />

这是我的功能(uploadEx):

      function uploadEx() {
                    var handle = document.getElementById('handle');

            var canvas = document.getElementById("canvas");
            var dataURL = canvas.toDataURL("image/png");
            document.getElementById('hidden_data').value = dataURL;

            var fd = new FormData(document.forms["form1"]);

            var xhr = new XMLHttpRequest();
            xhr.open('POST', 'upload_data.php', true);

            xhr.upload.onprogress = function(e) {
                if (e.lengthComputable) {
                    var percentComplete = (e.loaded / e.total) * 100;
                    console.log(percentComplete + '% uploaded');

                    alert('Selfie Succesfully uploaded');
                }
            };

            xhr.onload = function() {

            };
            xhr.send(fd);
        };

我的图片(Canvas)被传递回upload_data.php并被处理。

文本框,句柄,没有任何内容作为POST传递。

我不知道错误在哪里。

1 个答案:

答案 0 :(得分:0)

您的文字输入没有name属性,添加它并且它应该有效:

<form method="post" accept-charset="utf-8" name="form1">
<LABEL for:="handle">Twitter Handle </LABEL>
<INPUT type="text" id="handle" name="mytext" value="@">
<input name="hidden_data" id='hidden_data' type="hidden"/>
</form>