考虑这种形式:
HTML:
<form action="my_file.php" method="post" enctype="multipart/form-data" id="uploadFile" target="hiddenIframe">
<input type="file" name="files" id="files">
<input id="fileUploadButton" type="submit" name="upload" value="Upload File">
<iframe name="hiddenIframe" id="hiddenIFrame"></iframe>
</form>
<div id="myButton" onclick="submitFile()">Submit</div>
<input type="hidden" id="fileID" value="">
以下 jQuery 脚本将允许我上传文件:
<script>
$(document).ready(function() {
$('#fileUploadButton').click(function(){
$('#uploadFile').submit();
});
});
</script>
脚本运行后,新上传文件的 id(来自数据库)被插入到隐藏的输入字段中,id="fileID"
所有这些都可以正常工作。但是,我想要做的是通过点击触发上述表单提交<div id="myButton">
function submitFile() {
$(document).ready(function() {
if ($('input[name=files]').val() != "")
{
$('#uploadFile').submit(function(){
$.ajax({
type: "POST",
url: 'my_file.php',
success: function(data){
$('#fileID').val(data);
}
});
});
}
});
}
我无法使上述脚本正常工作。文件上传表格未提交。关于如何让它工作的任何建议?
更新:
我onclick="submitFile()"
从按钮中删除并尝试了这个,但它不起作用。为什么?
<script>
$(document).ready(function() {
$(document).on('click','#myButton',function(){
$('#uploadFile').submit(function(){
$.ajax({
type: "POST",
url: 'my_file2.php',
success: function(data){
$('#fileID').val(data);
}
});
});
});
});
</script>
更新 2:如果我单击文件提交按钮 ( id="fileUploadButton"
),则表单将按原样在 iframe 中提交。但是,如果我尝试使用我更新的脚本(来自上面的 UPDATE:...)通过单击按钮 ( id="myButton"
) 来提交表单,则它不起作用。