gpt4 book ai didi

javascript - 文件上传后是否可以留在页面上并收到“确定”消息?

转载 作者:行者123 更新时间:2023-11-28 19:20:28 25 4
gpt4 key购买 nike

如果我不使用下面的 JavaScript,则页面会在用户上传并单击“提交”后发生更改。 JavaScript 确保页面保持不变。

问题

使用 HTML 和 JavaScript,页面保持不变,这正是我想要的,并且我获得了单选按钮值。但上传不再有效。

问题

由于上传不再起作用,我做错了什么?

当这有效时,我想要 <div id="status">Click upload</div>更改为<div id="status">Upload complete</div>如果成功,万一这会改变解决方案。

HTML

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="jquery-2.1.3.min.js"></script>
<script src="stuff.js"></script>
</head><body>

<form enctype="multipart/form-data" action="/cgi-bin/test.py" method="post">
<input type="radio" name="subject" value="red" /> Red
<input type="radio" name="subject" value="green" /> Green
<p>File: <input type="file" name="filename" /></p>
<p><input type="submit" value="Upload" /></p>
</form>
<br/><br/>
<div id="status">Click upload</div>
</body>
</html>

JS

$(document).ready(function(){
var $form = $('form');
$form.submit(function(){
$.post($(this).attr('action'), $(this).serialize(), function(response){
// do something here on success
},'json');
return false;
});
});

最佳答案

您无法使用 $.post 进行 ajax 文件上传,您必须使用 $.ajax (或原始 XMLHttpRequest)和 FormData目的。在 $.ajax 中使用 formdata 对象作为数据参数需要将 contentTypeprocessData 设置为 false

   var $form = $('form');
$form.submit(function(){
$.ajax({
url: $(this).attr('action'),
type: $(this).attr('method'),
data: new FormData(this),
contentType: false,
processData: false,
success: function(response){
// do something here on success
},
dataType: 'json'
});
return false;
});

关于javascript - 文件上传后是否可以留在页面上并收到“确定”消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28987087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com