使用 jQuery 在表单提交时将隐藏的输入值设置为数据 URL
Setting hidden input value to a dataURL on form submit using jQuery
我正在使用jQuery从输入表单中获取图像文件,在HTML5画布中调整其大小,并将调整大小的图像转换为dataURL。但是,我不知道如何将隐藏输入的值设置为数据URL。
我已经确认我可以使用控制台.log在 img.onload 函数中看到 dataURL,但如果我在函数外的任何地方使用控制台.log则看不到。这就是我在img.onload中提交表单的原因。但是,该值在到达服务器时始终为"未设置"。
<form id='upForm' enctype="multipart/form-data" action="" method="post">
<table>
<tr><th><label for="id_file">File:</label></th><td><input id="id_file" name="file" type="file" /></td></tr>
</table>
<input type='hidden' name='csrfmiddlewaretoken' value='rLSVnSf35kwe9Yvq7P85lqmcp3LmC77J' />
<BR>
<input type="hidden" id="myData" name="dataURL" value="Not set" />
<input type="submit" name="sendFile" id="sendButton" value="Submit" class="btn btn-lg btn-primary">
</form>
<script>
$('#upForm').submit(function(e) {
e.preventDefault();
var self = this;
var img = document.createElement("img");
var reader = new FileReader();
var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
var dataURL = ""
img.onload = function() {
ctx.drawImage(img, 0, 0, 600, 800);
dataURL = canvas.toDataURL("image/jpeg", 1.0);
$('#myData').attr('value', dataURL);
self.submit();}
reader.onload = function(event) {
img.src = event.target.result;}
reader.readAsDataURL($('#id_file')[0].files[0]);
$('#main').html('<P>Uploading receipt.<P><img src='"/static/receipts/loading.gif'">');
});
而不是
$('#myData').attr('value', dataURL);
用
$('#myData').val(dataURL);
相关文章:
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 如何使用ian:accounts-ui-botstrap-3根据Meteor中的用户输入设置配置文件字段值
- 使用JS将输入设置为只读
- 正在为禁用的输入设置标题属性
- 用户输入设置数组长度
- 如何使用来自@Html.TextBoxFor的用户输入设置@Html.RadioButtonFor的值
- 根据其他输入设置最大值
- PHP论坛建设,输入设置栏(粗体,..链接等),如何申请
- 为输入设置最大值时出现插值错误
- jQuery MaskMoney - 将输入设置为字段的开头
- 在 Javascript 中将文本输入设置为变量
- (联合国)通过字符串输入设置嵌套数组值
- 将类型为数字的输入设置为字符串
- jQuery UI Slider(从文本输入设置)
- 根据第一个询问的输入设置输入类型范围的最小值
- 如何通过JavaScript将HTML5输入设置为必需
- 根据用户在Javascript中的输入设置Date()对象的正确方法是什么
- 如何在没有提交按钮AngularJS的情况下将所有输入设置为$touch
- angularjs将默认日期输入设置为今天
- 如何将用户尝试填充数据的输入旁边的所有输入设置为只读