我使用選擇框從下拉電子郵件列表中選擇電子郵件,如果用戶選擇電子郵件,我調(diào)用一個 javascript 函數(shù)來調(diào)用 ajax,此 ajax 函數(shù)返回所選電子郵件的 imap 函數(shù)返回值,一切都很好,但電子郵件下拉沒有當用戶選擇電子郵件時關(guān)閉,只有在 ajax 響應完成后才會關(guān)閉,這是我的 HTML 下拉列表<div class="row"> <div class="col-md-12"> <div class="form-group m-form__group"> <select name="info_email" id="info_email" class="form-control m-bootstrap-select m_selectpicker" data-live-search="true" onchange="get_mail_content_block(this.value);"> <option value="">Choose Email</option> <?php $admindata = $this->session->userdata('admindata'); if ($admindata['email_id'] != '') { $users_email_info = get_users_mail_details_if_exist($admindata['email_id']); if(count($users_email_info) > 0){ echo "<option value=".$users_email_info->email_detail_id.">".$users_email_info->email_ID."</option>"; } } ?> <?php if(!empty($email_lists)) { foreach ($email_lists as $key => $email_list) { ?> <option value="<?php echo $email_list->email_detail_id; ?>" <?php if($default_email == $email_list->email_detail_id){ echo 'selected'; }else{ echo ''; } ?>><?php echo $email_list->email_ID; ?></option> <?php } } ?> </select> </div> </div></div>在上面我調(diào)用了 get_mail_content_block(id); Javascript函數(shù)是function get_mail_content_block(val){ $('#mailbox_loader_img').show(); $.ajax({ type: "POST", url: baseurl+'Mailbox/email_content_block', async: false, type: "POST", data:{'email_id':val }, dataType: "html", success: function(response) { $('#mailbox_loader_img').hide(); $('#mail_content_append_block').empty().append(response); } });}
1 回答

一只萌萌小番薯
TA貢獻1795條經(jīng)驗 獲得超7個贊
您應該刪除async: false,它使 AJAX 調(diào)用同步,并阻止整個瀏覽器(Javascript 是單線程的)。
在任何情況下同步 AJAX 是
a) 完全沒有必要
和
b) 已棄用,恰恰是因為它會導致這類問題 - 如果某些瀏覽器看到您正在使用它,它們會在控制臺中發(fā)出警告。
PS 你也添加了type: "POST"兩次,這不會造成問題,但是是多余的。
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報
0/150
提交
取消