---
# System prepended metadata

title: Sweetalert2 處理輸入欄位問題
tags: [sweetalert2, axios]

---

# Sweetalert2 處理輸入欄位問題
以退款按鈕點擊事件舉例
```javascript=
$('#btn-apply-refund').click(function() {
  // 彈出確認框
  swal.fire({
    text: '請輸入退款理由',
    input: 'text', // 可輸入文字欄位
  })
    .then(function(input) {
      // 當用戶點擊 swal 彈出框上的按鈕時觸發這個函數
      if (!input['value']) {
        swal.fire('退款理由不得為空', '', 'error')
        return;
      }
      // 請求退款接口
      axios.post('{{ route('orders.apply_refund', [$order->id]) }}', {reason: input['value']})
        .then(function() {
          swal.fire('申請退款成功', '', 'success').then(function() {
            // 用戶點擊彈出框上按鈕重新加載頁面
            location.reload();
          });
        });
    });
  });
```
原本 `axios.post` 處的 `reason` 欄位取 `input` 作為值，但卻出現 Exception，說明我們給系統的參數為陣列，但系統要的是**字串**，如下圖所示：
![](https://i.imgur.com/07FkZwh.png)

在資料庫看到 `extra` 欄位有資料寫入，但不符合我們所要的：
![](https://i.imgur.com/2cCZw5S.png)
可以發現我們要寫入資料庫的值需要將 `input` 改成 `input['value']` 才會是正確的，

再測試一次後就不會出現 Exception 了
![](https://i.imgur.com/b7Tqtgi.png)

資料庫中 `extra` 欄位顯示 `{"refund_reason":"\u8cb7\u932f"}`

###### tags: `sweetalert2` `axios`