首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

jQuery AJAX 傳參後台收到 [object Object]?正確獲取 input 值的姿勢

     編輯:程式設計綜合問答

問題現場

<input type="text" name="BASE_ACCT_NO" size="30" onBlur="Getname();" />

var ajax = new AjaxApi('getMessage.do', 'BASE_ACCT_NO=' + $('BASE_ACCT_NO'), doxml1, messSend);

後台 `request.getParameter("BASE_ACCT_NO")` 獲得 `[object Object]`。

錯誤原因

  1. 選擇器錯誤:`$('BASE_ACCT_NO')` 當作 ID 選擇器,但該 input **只有 name 無 id**。
  2. jQuery 物件直接拼接字符串:`$('...')` 返回 jQuery 物件,拼接字符串時自動調用 `toString()` 產生 `[object Object]`。
  3. 未取值:應用 `.val()` 獲取輸入框的值。

修正方案

方案一:補上 id,使用 ID 選擇器

<input type="text" name="BASE_ACCT_NO" id="BASE_ACCT_NO" size="30" onBlur="Getname();" />

var ajax = new AjaxApi('getMessage.do', 'BASE_ACCT_NO=' + $('#BASE_ACCT_NO').val(), doxml1, messSend);

方案二:不加 id,使用屬性選擇器

var ajax = new AjaxApi('getMessage.do', 'BASE_ACCT_NO=' + $('input[name="BASE_ACCT_NO"]').val(), doxml1, messSend);

方案三:推薦使用 jQuery 內建 `$.ajax`,自動序列化表單

$.ajax({
    url: 'getMessage.do',
    type: 'POST',
    data: { BASE_ACCT_NO: $('input[name="BASE_ACCT_NO"]').val() },
    success: function(resp) { /* ... */ }
});

核心知識點

  • jQuery 選擇器:`#id`、`.class`、`[name=value]`、標籤名等。
  • 獲取表單值:`.val()`;設置值:`.val(newVal)`。
  • 手動拼接 URL 參數易出錯,建議用 `data` 物件讓 jQuery 自動編碼序列化。
  • 已引入 jQuery 時,**優先使用 `$.ajax` / `$.post` / `$.get`**,勿重複造輪子。

修正選擇器並加上 `.val()`,即可解決後台收到 `[object Object]` 的問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved