繁体   English   中英

在CodeIgniter中使用AJAX上传文件即使值为null / undefined仍执行

[英]Upload file using AJAX in CodeIgniter Still executed even the value is null/undefined

如果文件尚未输入,我想执行另一个ajax。 但是它仍然发布表单动作。

这是我的查看代码:

<form method="POST" id="quiz_file" action="<?php echo site_url('home/upload_quiz/' . $kelas);?>" enctype="multipart/form-data">
   <input name="filequiz" id="filequiz" type="file" />
</form>

这是我的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:'<?php echo site_url("home/assignment_score"); ?>',
     data: 
     { 
        asid : asid_quiz,
        value : cmbvalue,
        kelas : <?php echo $kelas;?>,
        dataType:"JSON"
     },
     success: function(data) 
     {
        console.log('asdasd' + data);
        alert('Quiz score submitted');
     }
 });

当我刚执行它时,它显示警报消息“ else”。 但是它仍然从表单动作执行上载动作。

这怎么可能发生? 如何停止执行上载操作并在“其他”侧执行另一个ajax请求?

如果您的submitquiz按钮类型为submit,则必须防止单击时发生submit事件,也可以将其更改为输入类型按钮。

如果您要使用ajax发送数据,我也更喜欢您,那么您必须使用输入按钮而不是提交

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM