【问题标题】:Restrict Uppercase in input text限制输入文本中的大写
【发布时间】:2022-11-30 01:18:52
【问题描述】:

我有一个 JS,我可以在其中检测是否正在输入大写字母,但我无法将文本文本转换为小写字母。我使用了 CSS text-transform: lowercase; 但这表明它较低但一旦提交,它显示文本为正常(原始格式)。 我试过使用 jquery toLowerCase(); 但我不知道我在这里错过了什么因为它没有用。 这是我的剧本

  const setup = function(fieldSelector) {
    const field = $(fieldSelector);
    const upperCase= new RegExp('[A-Z]');
    const applyStyle = function() {
      if (field.val().match(upperCase)) {
        field.val().toLowerCase();
      } else {
        field.val();
      }
    };
    field.on('change', applyStyle);
    applyStyle();
  }
  // Note: Change the ID according to the custom field you want to target.
  setup('#issue_custom_field_values_17');
});

此代码用于 redmine“查看自定义插件”

【问题讨论】:

  • 什么是红矿
  • 您只需在提交时更改文本即可。否则,您将阻止用户正常编辑该字段,因为光标将跳到最后一个位置。
  • 我使用了 CSS text-transform: lowercase;- css 改变了它的样子显示- 也将 css 添加到您的输出中。
  • str.toLowerCase() - 字符串是不可变的 - 它们不会改变。这为您提供了一个新字符串,因此需要为 str = str.toLowerCase() 或 field.val(field.val().toLowerCase())

标签: javascript jquery input redmine


【解决方案1】:

大写不会更改原始字符串。尝试为您的大写字母分配一个新变量,看看它是否有效!

【讨论】:

    【解决方案2】:

    我认为这应该适合你

    $('input').keyup(function(){
     let val = $(this).val().toLowerCase()
     $(this).val(val)
    })
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <input type="text">

    【讨论】:

      【解决方案3】:

      尝试这个

      const char = string.charAt(field.val());
      const isUpperCaseLetter = (/[A-Z]/.test(char));
      

      【讨论】:

        【解决方案4】:

        您可以在更改时将字段的值设置为新的小写值

         const setup = function(fieldSelector) {
                const field = $(fieldSelector);
                const upperCase= new RegExp('[A-Z]');
                // Here's the change
                const applyStyle = function() {
                 field.val( field.val().toLowerCase() )
                };
                field.on('change', applyStyle);
                applyStyle();
              }
              // Note: Change the ID according to the custom field you want to target.
              setup('#issue_custom_field_values_17');
            });
        

        【讨论】:

        • 这可以根据需要工作,非常感谢!
        猜你喜欢
        • 1970-01-01
        • 2011-01-02
        • 1970-01-01
        • 2018-10-01
        • 2011-12-18
        • 2012-09-06
        • 1970-01-01
        • 2015-01-31
        • 2017-01-23
        相关资源
        最近更新 更多