我正在尝试使用jquery进行一些文件上传。上传框必须在对话框中。 现在我只想知道点击对话框的上传按钮后。如何提交页面不加载。 我试过用这个 。$( '#uploadForm')提交()的preventDefault(); 它完全没有动作。
HTML
<script>
$( "#dialog-upload" ).dialog({
autoOpen: false,
height: 200,
width: 350,
modal: true,
buttons: {
"Upload": function() {
var bValid = true;
bValid = bValid && checkCSV()
if(bValid){
**$('#uploadForm').submit().preventDefault();**
}
$( "#dialog-upload" ).dialog( "close" );
},
Cancel: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
$( this ).dialog( "close" );
}
},
close: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
$( this ).dialog( "close" );
}
});
</script>
<div id="dialog-upload" title="Upload csv file">
<form>
<fieldset>
<form action='ajax.php' id = 'uploadForm' method='post' enctype='multipart/form-data'>
<input type="text" name="file" id="fileUpload" size = 30 class="text ui-corner-all" />
</form>
</fieldset>
</form>
</div>
PHP
if (isset($_FILES['file'])) {
echo "success";
}
答案 0 :(得分:2)
使用EVENT
代表团提交表单
$('#uploadForm').submit(function( e ){
e.preventDefault(); // browser 'submit' event behavior prevented
});
比做:
"Upload": function() {
var bValid = true;
bValid = bValid && checkCSV()
if(bValid){
$('#uploadForm').submit();
}
// ......
答案 1 :(得分:0)
您可以在提交之前将某些内容绑定到提交事件。
$(function() {
$('#uploadForm').submit(function(evt) {
evt.preventDefault();
});
});
然后只需在原始位置调用.submit()而不使用preventDefault()。