我在里面有一个表单和一个输入类型文件。ajax提交:数据库重复输入
<form id='imageform' method='post' enctype='multipart/form-data' action='php/exec/add-message-image-exec.php' style='clear:both'>
<div id='imageloadstatus' style='display:none'><img src='assets/loader.gif' alt='Uploading....'/></div>
<div id='imageloadbutton'>
<div class='file-field input-field'>
<div class='btn'>
<span>Upload</span>
<input type='file' name='file' id='photoimg'/>
</div>
<div class='file-path-wrapper'>
<input class='file-path validate' type='text'>
</div>
</div>
</div>
</form>
它会在输入文件中附加图像时执行,并且ajax会自动处理并将其保存到数据库中。
$(document).ready(function() {
$('#photoimg').on('change', function() {
var A = $('#imageloadstatus');
var B = $('#imageloadbutton');
$('#imageform').ajaxSubmit({target: '#preview',
beforeSubmit: function() {
A.show();
B.hide();
},
success: function() {
A.hide();
B.show();
},
error: function() {
A.hide();
B.show();
}}).submit();
});
});
我的问题是,它提交图像两次,并将其保存到我的数据库/表两次。但是当我删除脚本中的.submit();
时,它只执行一次,但是有一个小模式窗口,并且每当我附加图像/提交时都会出现另一个屏幕。
什么样的窗口出现?你能展示截图吗? –
这可能是你的ajax正在提交,然后表单实际上也在提交。在表单中,您可以尝试删除'action ='并添加'onsubmit =“return false;”'只是为了检查... – larsAnders
这里是我的示例图像,当我删除.submit();在脚本上以及删除操作并添加onsubmit ='return false;'在形式中。 http://imgur.com/sn0DE39 – Duplicated