0

当我尝试提交带有文件的表单时遇到问题,当要上传的文件在选择后但在提交表单之前发生更改(例如重命名文件)时。表单根本不提交。这是我的示例代码:

<form action="test.htm" method="post" enctype="multipart/form-data" id="test">
    <input type="file" name="file" />
    <input type="submit" value="Submit" />
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $('#test').submit(function() {
        console.log("IT WORKS!");
        return true;
    });
});
</script>

更新

使用以下代码更简化:

<form action="upload.asp" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" value="Submit" />
</form>

尝试这样做: 1) 从您的系统中选择一个文件 2) 在您的系统上重命名该文件 3) 提交表单。

什么都没发生。

4

2 回答 2

0

如果您想知道为什么console.log没有显示,那是因为表单已经被提交。

只需添加一个event.preventDefault以确保您的代码运行。

$(document).ready(function() {
    $('#test').submit(function(e) {
        e.preventDefault();
        console.log("IT WORKS!");
        return true;
    });
});

演示

更新

您的操作路径是.htm文件。您将需要一种服务器端语言来处理POST.

于 2013-01-03T08:08:01.903 回答
0

你的 javascsript 函数没用..因为

<input type="submit"..

将在调用之前提交表单

一种方法是preventDefault()在您的功能中使用..

$(document).ready(function() {
 $('#test').submit(function(e) {
    e.preventDefault();
    console.log("IT WORKS!");
    return true;
 });
});

或将您的输入设为按钮

<button id="submit">Submit</button>

$('#submit').click(function(){
$('#test').submit(function() {
   console.log("IT WORKS!");
   return true;
 });
});
于 2013-01-03T08:09:55.510 回答