【问题标题】:jQuery gets old value of input fieldjQuery获取输入字段的旧值
【发布时间】:2014-12-26 10:55:27
【问题描述】:

在下面的代码中,当我更改框中的值并单击“更新”时,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>

注意:随时提出改进建议。

【问题讨论】:

  • 为您的输入字段提供一个 ID,例如 #input_parameter ,而不是 $('#input_parameter').val()
  • @pszaba:这似乎没有帮助。我得到相同的结果。只有在 Firefox 上刷新后才会更新输入。 Chrome 似乎重置了输入字段,但服务器日志显示它发送 NaN(空),即使框中有一个数字。
  • 我知道这并不能解决您的问题,但您写道:“注意:请随时提出改进建议。”,id 总是更好
  • @pszaba:好的,很酷。我以为你在提出解决方案,抱歉。
  • 顺便说一句,在你的 submit_command() 中你可以 console.log(e.data) 吗??

标签: javascript jquery html


【解决方案1】:

请尝试这样的方法

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

检查小提琴 - http://jsfiddle.net/2bt5pqxb/ - 它会提醒插入的值。我希望这会有所帮助

【讨论】:

  • 我不能投票(没有足够的声誉),但这解决了我的问题。谢谢!在你的回答中,你能详细说明一下为什么吗?是不是因为页面加载的时候绑定,之后数据就不能改了?
  • 嗨,由于服务器调用,我没有检查您的解决方案有什么问题。我很高兴我的回答成功了。我也不熟悉您绑定单击按钮的方式,所以我不能说出了什么问题
猜你喜欢
  • 1970-01-01
  • 2021-09-30
  • 2018-01-07
  • 2015-02-18
  • 2018-02-06
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多