javascript - 用户更改文本框的值后无法以编程方式更改文本框

标签 javascript jquery

考虑以下 fiddle :http://jsfiddle.net/danashurst/36mx3537/

HTML:

<table>
<tr>
    <td>1 -</td>
    <td>
        <input id="1" class="primaryChannel" type="text" value="9">
    </td>
</tr>
<tr>
    <td>2 -</td>
    <td>
        <input class="channelValue" type="text" value="-4">
    </td>
</tr>
<tr>
    <td>3 -</td>
    <td>
        <input class="channelValue" type="text" value="5">
    </td>
</tr>
</table>

Javascript:

        filterInt = function (value) {
        if (/^(\-|\+)?([0-9]+|Infinity)$/.test(value)) return Number(value);
        return 0;
    }

    $('.channelValue').each(function () {
        var elem = $(this);

        // Save current value of element.
        elem.data('oldVal', elem.val());

        // Look for changes in the value.
        elem.bind("propertychange change click keyup input paste", function (event) {
            // If value has changed...
            if (elem.data('oldVal') != elem.val()) {
                // Calculate the difference between the old and the new value.
                var difference = elem.data('oldVal') - elem.val();

                // Updated stored value.
                elem.data('oldVal', elem.val());

                // Remove the difference from the first textbox.                
                $('.primaryChannel').attr("value", filterInt($('.primaryChannel').val()) + difference);

            }
        });
    });

当用户更改文本框 2 或 3 的数值时,更改的差异会反射(reflect)在文本框 1 上。

但是,当用户更改文本框 1 的值,然后更改 2 或 3 的值时 - 然后似乎什么也没有发生 - 文本框 1 不会更改。

任何人都可以建议我实现这一目标的方法吗?

最佳答案

您正在使用.attr('value', someValue),但值属性设置默认值,而不是当前值。

改为设置值属性。使用 .val(someValue).prop('value', someValue)

关于javascript - 用户更改文本框的值后无法以编程方式更改文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28725102/

相关文章:

javascript - 使用 ajax 的 Formspree 联系表单不起作用

javascript - (codeigniter) 使用jquery调用 Controller 在 View 内加载 View

javascript - 我的动态内容需要下一个和上一个

JQuery 动画,未按预期工作

javascript - 添加新项目时 vsCode 刷新树

javascript - 路径上特定点上的 SVG 标记中间

javascript - 如果哈希与其 ID 匹配,如何显示隐藏的 div

javascript - 使用动态值计算

javascript - JS 对第 n 个实例运行相同的函数

javascript - 电子邮件返回数字值而不是名称