2010-04-04 121 views
0

我有一些問題,雖然jQuery發送一個ID。 我有一個表單選擇一些值,我想在變更選項選擇時「抓住」id。通過發送選項選擇。 jquery

輸出錯誤:[object Object] !! :/

<select name="case_name" id="case_id"> 
      <option value="10009" >Case 1</option> 
      <option value="10010" >Case 2</option> 
      <option value="10011" >Case 3</option> 
      </select> 



    var PARAMS = { "case_id": 10009 }; 

$("#case_id").change(function() { 
    var CASE_ID = $(this).val(); 
    var PARAMS = { "case_id": CASE_ID }; 
    alert(CASE_ID); 
}); 
+0

現在的問題是,PARAMS都必須有一個價值,在選擇之前。 如果我將默認值設置爲100,它會每次返回100,我提交,如果我更改我的選擇。 如果我用警報框進行調試,它顯示正確的值:我很困惑。 – william 2010-04-04 01:34:56

+0

你在混合示波器。 PARAMS在這裏被聲明瞭兩次,在不同的範圍(全局和匿名函數內)。從更改回調中的'var PARAMS'中刪除var。順便說一句,像這樣的全局變量浮動不是個好主意。 – Anurag 2010-04-04 01:50:16

回答

3

CASE_ID被匿名函數中定義,並且僅此函數內有效。在回調中,您可以簡單地將選擇框指向爲this

$("#case_id").change(function() { 
    var CASE_ID = $(this).val(); 
}); 

在匿名函數之外,它不存在。

var PARAMS = { "case_id": CASE_ID }; 

要麼修改change回調以包含PARAMS對象。

$("#case_id").change(function() { 
    var CASE_ID = $(this).val(); 
    var PARAMS = { "case_id": CASE_ID }; 

}); 

或獲取值再次

var PARAMS = { "case_id": $("#case_id").val() }; 

或許定義您的新選擇的值傳遞給函數:

function sendValue(value) { 
    var PARAMS = { "case_id": value }; 
    // send the value somewhere 
} 

$("#case_id").change(function() { 
    var CASE_ID = $(this).val(); 
    sendValue(CASE_ID); 
}); 
+0

我改變了最好的代碼,與你的一些。我仍然遇到問題。 (在頂部閱讀我的評論):) – william 2010-04-04 01:39:23

+0

非常感謝你:-) – william 2010-04-04 02:29:42

+0

很高興它幫助。乾杯! – Anurag 2010-04-04 03:53:24

3
var CASE_ID = $("#case_id option:selected").val();