【问题标题】:jQuery KeyUp Not Allowing More ValuesjQuery KeyUp 不允许更多值
【发布时间】:2013-06-10 19:01:44
【问题描述】:

我是 javascript(和 jQuery)的新手,所以请多多包涵。

我希望用户能够在文本框中输入数字,并且每次用户输入另一个值(keypress、keydown、keyup)时,代码都会执行并计算新值。

这是jsFiddle

我的问题是文本框不允许我输入多个值。如何继续输入更多值?

jQuery (1.9.1)

$(document).ready(function() {
    $('.conv').keyup(function() {
      var valx = parseFloat($(this).attr('data-val'));
      var classes = parseInt($('.conv').length);

      for (var i=1;classes;i++) {
          var x = 'a' + i;
          //alert(x);
          var theval = document.getElementById(x);
            var z = parseFloat($('#' + x).attr('data-val'));
            //alert(z);
            $('#' + x).val(z / valx);
        if (i == classes) {
        break;
        }
    }
    });
 });

再次...这里是jsFiddle,如果您想编辑

【问题讨论】:

    标签: jquery onkeydown onkeyup


    【解决方案1】:

    您似乎甚至覆盖了生成事件的文本框的值..

    替换

    $('#' + x).val(z / valx);
    

    $('#' + x).not(this).val(z / valx);
    

    编辑

    原因是你总是从

    读取值
    var valx = parseFloat($(this).attr('data-val'));
    

    而不是

    var valx = parseFloat($(this).val());
    

    Check Fiddle

    【讨论】:

    • 谢谢!这有帮助。如何使代码在我继续输入数字时重做计算?示例:键入“1”,代码将计算。然后添加一个“0”,代码不会记录新数字是“10”。
    • 在这种情况下,您可能需要change() 而不是keyup()
    • .change() 似乎仅在我将注意力从文本框移开时才起作用
    猜你喜欢
    • 2023-03-08
    • 2014-09-05
    • 2012-03-23
    • 1970-01-01
    • 2016-08-24
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2011-07-25
    相关资源
    最近更新 更多