【问题标题】:Auto Update form field from integer to decimal自动更新表单字段从整数到十进制
【发布时间】:2013-08-31 03:13:28
【问题描述】:

我有两个表单字段供用户输入以公斤为单位的重量和以米为单位的长度,大多数用户认为以厘米为单位的长度会给出错误的计算。我可以在输入整数的情况下自动更新表单吗? (例如 170 会自动转换为 1.7 )?

【问题讨论】:

    标签: javascript integer decimal auto-update


    【解决方案1】:

    您可以检查该值是否是这样的整数:

    var isInt = function(n) {
       return n % 1 === 0;
    }
    

    这是一个 js fiddle 展示了这一点http://jsfiddle.net/krasimir/6e72q/

    HTML

    <input type="text" id="field"/>
    

    JS

    var field = document.getElementById("field");
    field.addEventListener("change", function() {
        var value = field.value;
        if(isInt(value)) {
            field.value = value = value / 100;
        }
    });
    var isInt = function(n) {
       return n % 1 === 0;
    }
    

    【讨论】:

    • 非常感谢@Krasimir,这正是我所需要的。但是,我不知道为什么它不起作用,即使我在一个简单的 html 页面中测试它也不起作用。你有什么想法吗?
    • 未捕获的类型错误:无法调用 null 的方法 'addEventListener'
    • 那是因为你可能直接使用了我的代码。您需要在 getElementById 函数中更改字段的 id。
    • 我使用相同的代码在一个空白的 html 文件中进行测试,只有输入表单和 js。
    • 好的,用同样的代码做一个 jsfiddle,我会帮你的。从你所说的我认为你没有在 getElementById 函数中使用正确的 id。
    【解决方案2】:

    您可以通过 onchange 事件检查“点”字段的值

    /\./.test(fieldValue)
    

    如果为假,则将该值转换为数字(+、Number()、parseInt())并除以,然后更新该输入字段的 value 属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-08
      • 2016-03-29
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 2021-09-29
      • 2019-04-28
      • 1970-01-01
      相关资源
      最近更新 更多