2014-10-30 132 views
0

在下面的代碼中,當我更改框中的值並單擊「更新」時,jQuery獲取輸入字段的舊值。刷新頁面時(刷新後保留新輸入)並再次單擊「更新」,則使用新值。我究竟做錯了什麼?jQuery獲取輸入字段的舊值

<body> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
     var submit_command = function(e) { 
      $.getJSON($SCRIPT_ROOT + '/__test', 
       e.data, 
       function(data) { 
        $("#result").text(data.test); 
        }); 
      return false; 
     }; 
     $('a#update_parameter').bind('click', { 
            name: "Param", 
            test: parseFloat($('input:text[name=input_parameter]').val().replace(",", ".")) 
           }, submit_command); 
    }); 
    </script> 
<div class="parameter"> 
    <span class="parameter_name">My Parameter</span> 
    <input type="text" name="input_parameter" size=3 /> 
    <a href=# id="update_parameter">Update</a> 
    <span id="result">?</span> 
</div> 
</body> 

注:隨意提出改進意見。

+0

給您的輸入字段像#input_parameter,比$('#input_parameter')。val() – pszaba 2014-10-30 12:06:19

+0

@pszaba:這似乎沒有幫助。我得到相同的結果。只有在Firefox上刷新後纔會更新輸入。 Chrome似乎重置了輸入字段,但服務器日誌顯示它發送NaN(空)事件,儘管盒中有一個數字。 – gurdulilfo 2014-10-30 12:20:17

+0

我知道這不是解決你的問題,但你寫道:「注意:隨意建議改進。」,id總是更好 – pszaba 2014-10-30 12:22:10

回答

0

請嘗試這樣的事情

$('a').click(function(){ 
    alert($('input[name=input_parameter]').val()); 
}); 

檢查小提琴 - http://jsfiddle.net/2bt5pqxb/ - 它提醒插入值。我希望這可以幫助

+0

我不能投票(沒有足夠的聲望),但這解決了我的問題。謝謝!在你的回答中,你能否詳述一下爲什麼?是否因爲裝入頁面時發生綁定,並且之後無法更改數據? – gurdulilfo 2014-10-30 12:32:52

+0

嗨,我沒有檢查你的解決方案有什麼問題,因爲服務器調用..我很高興我的答案做到了。我不熟悉你在按鈕上點擊單擊的方式,所以我不能說出了什麼問題 – fDruga 2014-10-30 15:24:40