Upload de arquivo usando AJAX no CodeIgniter Ainda executado mesmo o valor é null / undefined

Eu quero executar outro ajax se o arquivo não for inserido ainda. Mas ainda está postando a ação do formulário.

Aqui está o meu código de visão:

<form method="POST" id="quiz_file" action="" enctype="multipart/form-data">   

E esta é minha JS:

 $('#submitquiz').on('click', function(event) { var inputFile = $('input[name=filequiz]'); document.getElementById('submitquiz').disabled = true; var fileToUpload = inputFile[0].files[0]; // make sure there is file to upload if (undefined != fileToUpload) { var uploadURI = $('#quiz_file').attr('action'); var formData = new FormData(); formData.append("file", fileToUpload); alert('if'); $.ajax({ url: uploadURI, type: 'post', data: { formData : formData, asid : asid_quiz, value : cmbValue }, processData: false, contentType: false, success: function(data) { } }); } else { alert('else'); $.ajax( { type: 'POST', url:'', data: { asid : asid_quiz, value : cmbvalue, kelas : , dataType:"JSON" }, success: function(data) { console.log('asdasd' + data); alert('Quiz score submitted'); } }); 

Quando acabei de executá-lo, ele mostra a mensagem de alerta “else”. Mas ainda executa a ação de upload da ação de formulário.

Como isso poderia acontecer? Como parar de executar a ação de upload e executar a outra solicitação de ajax nesse lado ‘else’?

Se o tipo de botão submitquiz for enviado, você deverá evitar enviar o evento por clique ou poderá alterá-lo para o botão de tipo de input.

Eu prefiro você também se você enviar dados usando ajax, então você tem que usar o botão de input em vez de enviar

 $('#submitquiz').on('click', function(event) { event.preventDefault();