Как отключить кнопку до тех пор, пока видео не будет загружено?

#php #codeigniter

#php #codeigniter

Вопрос:

У меня есть одна форма, в которой я хочу загрузить изображение и видео, и мне нужно заполнить некоторую информацию. До завершения формы кнопка отправки отключена, а после завершения загрузки видео и изображений и заполнения всех полей она должна быть включена.

 $("#uploadify").uploadify({
  height        : 30,
  swf           : urljs '/public/js/uploadify.swf',
  uploader      : urljs '/public/js/uploadify.php',
  folder        : "../../../uploads",
  width         : 120,
  fileSizeLimit : '200000KB',
  fileTypeDesc  : 'Video Files',
  fileTypeExts  : '*.*;',
  formData      : {
     folder : '../../private/<?php echo $userId;?>'
  },
  onUploadSuccess : function(file, data, response) {
      $("[name=coursebanner]").val(file.name);
      $("[name=banner]").attr("src",'<?php echo base_url();?>private/<?php echo $userId;?>/' file.name);
  }
});
$(".filedtls").hide();
$("#contentupload").uploadify({
    height        : 30,
    swf           : urljs '/public/js/uploadify.swf',
    uploader      : urljs '/public/js/uploadify.php',
    folder        : "../../../uploads",
    width         : 120,
    fileSizeLimit : '40MB', 
    fileTypeDesc  : 'Video Files',
    fileTypeExts  : '*.*;',
    formData      : {
       folder : '../../private/<?php echo $userId;?>/beforeconvert',
       folder1 : '../../private/<?php echo $userId;?>',
       userId : <?php echo $userId?>
    },
    'onComplete': function(event, queueID, fileObj, response, data) {       
   console.log(response);
 },
 'onUploadSuccess' : function(file, data, response) {
        $("[name=promovideoname]").val(file.name);
    }
  });


   $('#createcoursebasicform > input').keyup(function() {

    var empty = false;
    $('#createcoursebasicform > input').each(function() {
        if ($(this).val() == '') {
            empty = true;
        }
    });

    if (empty) {
        $('#save').attr('disabled', 'disabled');
    } else {
        $('#save').removeAttr('disabled');
    }
});
 

и

 <div class="col-md-9">
    <form id="createcoursebasicform">
      <input type="hidden" name="courseId" value="<?php echo $courseId;?>"/>
          <div class="create-course-content">

             <!-- COURSE BANNER -->
              <div class="course-banner create-item">
                 <div class="row">
                    <div class="col-md-3">
                      <h4>Course Banner</h4>
                     </div>
                     <div class="col-md-9">
                        <div class="image-info">
                        <img name="banner" src="<?php echo base_url();?>public/images/placeholder.jpg" alt="">
                         </div>
                         <input type="hidden" name="coursebanner"/>
                         <div class="upload-recrop">
                           <div class="upload-image up-file" id="uploader">
                              <a href="#"><i class="icon md-upload"></i><div id="uploadify"></div></a>
                           </div>

                         </div>
                      </div>
                   </div>
                </div>
            <!-- END / COURSE BANNER -->
            <!-- PROMO VIDEO -->
             <div class="promo-video create-item">
                <div class="row">
                    <div class="col-md-3">
                      <h4>Promo Video</h4>
                    </div>
                    <div class="col-md-9">
                      <div class="form-item">
                         <input type="text" placeholder="Paste URL">
                      </div>
                      <div class="upload-video up-file">
                                    or
                       <a href="#"><i class="icon md-upload"></i><div id="contentupload"></div></a>

                        <input type="hidden" name="promovideoname">
                      </div>
                    </div>
                 </div>
               </div>

              <div class="duration create-item">
                  <div class="row">
                      <div class="col-md-3">
                         <h4>Duration</h4>
                       </div>
                       <div class="col-md-9">
                          <div class="duration-ct">
                             <div class="form-item">
                                <input type="text" name="duration">
                             </div>
                             <span class="day">days</span>
                           </div>
                        </div>
                     </div>
                  </div>
                  <div class="form-action">
                    <input id="save" type="submit" value="Save and Next" class="submit mc-btn-3 btn-style-1" disabled="disabled">
                  </div>
               </form>
           </div>
 

Ответ №1:

Я всегда использую JavaScript для отключения и включения кнопки отправки.

HTML

 <input type="submit" id="switch" value="xxxx" disabled="disabled" />
 

Возможно, вы захотите передать флаг после завершения загрузки. Скажем Finish , и поместите его в Json, тогда вы могли бы использовать AJAX для получения Finish данных с сервера.

JavaScript

  $.ajax({
  url: "test.php",
  dataType: "json", 
  success: function(data){ 
    data.Finish ? $switch.attr('disabled', true) : $switch.removeAttr('disabled');
  }
});
 

Ответ №2:

Вы можете использовать jQuery с вызовом Ajax для отправки и использования :

  beforeSend
 

чтобы отключить кнопку отправки!

Комментарии:

1. Я обновил свой вопрос, и я попробовал так, но он не работает. Что-то не так.

2. $('#createcoursebasicform > input').keyup(function() { var empty = false; $('#createcoursebasicform > input').each(function() { if ($(this).val() == '') { empty = true; } }); if (empty) { $('#save').attr('disabled', 'disabled'); } else { $('#save').removeAttr('disabled'); } });

3. И в чем проблема?

4. Я решил это, добавив `<input id=»switch» type =»submit» value=»Save and Next» class=»submit mc-btn-3 btn-style-1″ disabled=»disabled» style =»курсор: запрещен»>` и в onUploadsuccess $("#switch").attr("disabled", false); нем будет работает во время первой загрузки видео. Я хочу отключить это, когда загрузка второго видео означает загрузку нескольких видео.

5. Поэтому вам следует либо загрузить все видео вместе, либо снова запустить jQuery для проверки!

Ответ №3:

Когда вы получаете запрос $ _post или $ _get от пользователя, используйте приведенный ниже html-код для отключения кнопки

  <input type="Submit" value="Upload" <?php echo $disable; ?> />
 

значение $disable out из if($_post) или оператора get равно NUll или «. в условии if используйте $disable = ‘отключено’;

Загрузите все свои файлы и данные, когда вы достигнете EOF, сделайте $disable=Null .