问题描述
以下是视图部分(HTML):
<?= $this->Form->create(null,['id' => 'chat-form','type' => 'file']) ?>
<div class="chat-input">
<div class="chat-input-content">
<textarea id="chat-message" name="message" placeholder="メッセージを入力" required></textarea>
<input type="file" id="clip" name="chat_image" accept="image/jpeg,image/png">
<button type="submit" class="btn-chat">submit</button>
</div>
</div>
<?= $this->Form->end(); ?>
这是JS部分:
// Post chat message
$("#chat-form").submit(function(event) {
event.preventDefault();
// disabling submit to prevent double submissions
var $this = $(this);
var $submitBtn = $this.find('button');
$this.attr('disabled',true);
$submitBtn.attr('disabled',true);
// Getting form data with FormData object
formData = new FormData(this);
// Adding key value pair
formData.append('order_id',2);
// Sending form to the controller
$.ajax({
url : "<?= $this->Url->build('/mypage/chat/post-chat-messages') ?>",type : 'POST',data : formData,contentType: false,processData: false,}).done(function (html) {
$('#chat-message').val('');
appendSlideDown( $('.chat-list'),html );
}).fail(function(){
alert("Fail");
}).always(function(){
$this.attr('disabled',false);
$submitBtn.attr('disabled',false);
});
});
因此,当我提交此表单时未选择任何图像时,您可以在下图中看到XHR请求包含一个二进制文件!我不知道为什么 ?我正在考虑验证JS中的来解决此问题。是否有人知道为什么会发生这种情况以及防止这种情况的最佳方法。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)