所以我有這樣的形式:檢查FORMDATA是空
<form id="uploadimage" action="" method="post" enctype="multipart/form-data">
<div class="text-inside">
Selectati Categoria<br><select id="sc" name="selectCat"></select><br><br>
Nume Produs<br><input id="numprod" type="text" name="input-text" /><br>
Pret Produs<br><input id="pretprod" type="number" name="input-pret" /><br><br>
<input type="file" name="file"><br><br>
<input type="submit" name="sumit" value="Send" id="imgButton" class="button" /><br><br>
</div>
</form>
,我試圖檢查是filelds爲了防止用戶submiting空字段,所以我用這個空:
$('#uploadimage').on('submit',(function(e) {
e.preventDefault();
var formData = new FormData(this);
var name= $('#numprod').val();
var pret = $('#pretprod').val();
if(name && pret){
$.ajax({
url: 'connect.php',
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function(){
alert('uploaded successuflly!');
}
});
}else{alert('input fields cannot be left empty you num num!');}
}));
但我仍然可以提交沒有選擇的文件,並且ajax不再重新加載頁面了。任何建議我可以做什麼?
簡短的回答,你不可靠。較長的回答:在Chrome和Firefox中,您可以使用FormData.entries()來檢索信息,但舊版瀏覽器不支持這些信息,當然也不支持IE。另一種方法是直接驗證表單元素。另外請注意,您應該刪除'async:false',因爲它的使用方式非常糟糕 –
您沒有檢查'file'字段。 – TheValyreanGroup
TheValyreanGroup完成了它,但頁面仍然沒有重新加載 –