【问题标题】:Best way to add typed numbers in front of the text of an HTML5 input field?在 HTML5 输入字段的文本前添加键入数字的最佳方法?
【发布时间】:2018-10-01 12:24:58
【问题描述】:

对于输入字段,我需要实现每个插入的数字都必须放在输入字段的前面。

示例:输入 9、5、1 应为 159

我希望有 HTML5 的解决方案(例如 dir="rtl"),但找不到。

似乎只有使用 Javascript 才有解决方案:

var elem = document.getElementById(elemId);
elem.focus();
elem.setSelectionRange(0, 0);

我在 Jquery 中实现的:

$('input').keyup( function(e) {
    $(this)[0].setSelectionRange(0, 0);
});

注意:输入字段必须是type="text"type="number" 不起作用!

实现此目的的另一种方法是从字段中移除焦点并重新设置焦点。

不过,我仍在尝试寻找纯粹基于 HTML5 的解决方案。

【问题讨论】:

    标签: javascript html


    【解决方案1】:

    给你:

    input {
      unicode-bidi:bidi-override;
      direction: RTL;
    }
    

    Source

    【讨论】:

    • 我的感觉是对的。太棒了,有一个纯 HTML5 解决方案。效果很好:jsfiddle.net/kai_noack/c83rfu26 – “unicode-bidi CSS 属性与 direction 属性一起决定了如何处理文档中的双向文本。”现在我什至可以使用输入类型number
    • 啊,高兴得早了。这儿存在一个问题。键入 9、5、1 会显示 159,但输入字段中的值为 951
    • 在后端检索该值时能否对其进行操作?我不确定你是否可以在没有 JS 的情况下操纵实际的“价值”。
    • 是的,后端也是我的想法。但是,我最近的解决方案是使用 Javascript 并具有“正确的值”前端。
    • 如果你假设你要在后端获得正确的值,我会小心使用 JS 来操作值,因为很明显可能有少数几个禁用了 JS - 那是如果你仍然可以在没有 JS 的情况下提交表单。
    猜你喜欢
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 2012-11-09
    • 1970-01-01
    • 2016-05-12
    相关资源
    最近更新 更多