当用户尝试提交指定的表单时,有没有办法更改表单参数?
假设我有以下形式:
<form id="myform" method="port" action="/form.php">
<input type="file" name="image1">
<input type="submit">
</form>
因此,当用户点击提交按钮时,它会向包含/form.php
参数的image1
发出POST请求。我想以编程方式将此参数更改为完全不同的base64编码图像。
有可能吗?
答案 0 :(得分:1)
您可以在jQuery的$('form').submit()
事件中编辑值,如本答案中所述:
https://stackoverflow.com/a/1547963/5742681
您可以使用您想要的任何内容替换表单值,方法是创建一个新的数据对象并POST
而不是原始的表单值。
如果由于某种原因你不想使用jQuery的。post()
,你也可以更改$('form').submit()
中的输入值并返回true,标准的提交事件将在jQuery之后发生。
答案 1 :(得分:0)
将ID添加到文件输入和隐藏的输入字段,以便html看起来像:
<form id="myform" method="post" action="/form.php">
<input id="changeme" type="file" name="image1">
<input id="hidden" type="hidden" name="base64img" value="">
<input type="submit">
</form>
在jQuery中,您可以对表单提交采取一些操作,如:
var frm = $('#myform');
frm.submit(function (ev) {
frm.find('input#hidden').attr('value', 'data:image/png;base64,alotoftext');
frm.find('input#changeme').remove();
});
修改强>
如果您无权访问服务器,请使用jQuery添加elemt,如:
$('<input>').attr({
type: 'hidden',
id: 'hidden',
name: 'base64img',
value: ''
}).appendTo('#myform');