#javascript #php #ajax
Вопрос:
У меня есть форма, которая загружает изображения с индикатором выполнения. Но выбор изображения необязателен. Он отлично работает при выборе изображений. upload.php получает как имя, так и изображения. Проблема в том, что он не может отправить имя или другие данные формы, пока изображение не выбрано.
форма-
lt;form id="uploadImage" action="upload.php" method="post"gt; lt;div class="form-group"gt; lt;labelgt;Namelt;/labelgt; lt;input type="text" name="name" id="name"gt; lt;/divgt; lt;div class="form-group"gt; lt;labelgt;File Uploadlt;/labelgt; lt;input type="file" name="uploadFile[]" id="uploadFile" accept=".jpg, .png" multiple/gt; lt;/divgt; lt;div id="preview"gt;lt;/divgt; lt;div class="form-group"gt; lt;input type="submit" id="uploadSubmit" value="Upload" class="btn btn-info" /gt; lt;/divgt; lt;div class="progress"gt; lt;div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"gt;lt;/divgt; lt;/divgt; lt;div id="targetLayer" style="display:none;"gt;lt;/divgt; lt;/formgt; lt;div id="loader-icon" style="display:none;"gt;lt;img src="loader.gif" /gt;lt;/divgt;
Код Javascript-
lt;scriptgt; $(document).ready(function(){ $('#uploadImage').submit(function(event){ var x= document.getElementById("name").value; if (x == '') document.getElementById("preview").innerHTML= "name is required."; else { if($('#uploadFile').val()) { event.preventDefault(); $('#loader-icon').show(); $('#targetLayer').hide(); $(this).ajaxSubmit({ target: '#targetLayer', beforeSubmit:function(){ $('.progress-bar').width('50%'); }, uploadProgress: function(event, position, total, percentageComplete) { $('.progress-bar').animate({ width: percentageComplete '%' }, { duration: 1000 }); }, success:function(){ $('#loader-icon').hide(); $('#targetLayer').show(); }, resetForm: true }); } else { } } return false; }); }); lt;/scriptgt;
итак, пока изображение не выбрано, что делать в другой части?
Комментарии:
1. В блоке else используйте те же инструкции блока if, но (а) Удалите блок beforeSubmit; и (б) Удалите блок uploadProgress
2. здорово. хорошего дня