【问题标题】:Input - text-align:right - fill input with jQuery输入 - text-align:right - 使用 jQuery 填充输入
【发布时间】:2016-05-17 01:48:21
【问题描述】:

我尝试搜索相关问题,但找不到。我有一个带有 text-align:right 的简单输入字段。

<input id="screen" type="text">

#screen {
    width: 100%;
    font-size: 2em;
    padding: 0 0.5em 0 0.5em;
    border: solid 1px;
    text-align: right;
}

当我输入输入并且文本的长度超过输入的长度时,当您继续输入时,字符串的溢出开始在左侧消失。

当我用 jQuery 填充相同的输入时,文本的溢出在输入的右侧。有没有办法通过 jQuery 用文本填充输入,让它表现得好像你已经输入了文本,从而隐藏了字符串的开头而不是结尾?

为了澄清我想要什么,让我们看一个例子: 当按下按钮用文本填充输入时,它会显示“Hello!What a wo”,但如果您自己编写文本,则可见文本是“今天不愉快的一天”。这就是我用 jQuery 填充输入时想要的结果。

jQuery btn 结果:

jQuery btn 的期望结果:

https://jsfiddle.net/fgdgbbjf/6/


更新:已解决

示例:https://jsfiddle.net/fgdgbbjf/12/

【问题讨论】:

    标签: jquery html css input text-align


    【解决方案1】:

    如果我明白你的意思.. 我想你只需要.focus()

    $('#clear').on('click', function() {
      $("#screen").val("");
    });
    $('#fill').on('click', function() {
      $('#screen').val("Hello! What a wonderful day today.").focus();
    });
    

    Demo Here

    【讨论】:

    • 它没有用。对不起,我解释得不够好。例如当按下按钮用文本填充输入时,它显示“Hello!What a wo”,但如果你自己写文本,可见文本是“今天不愉快的一天”。这就是我用 jQuery 填充它时想要的结果。
    【解决方案2】:

    当按下按钮用文本填充输入时,它会显示“你好! 好麻烦”,但是如果你自己写文字,可见文字是 “今天很愉快。”

    您可以在输入文本的末尾设置光标位置,然后您可以从添加文本的末尾开始书写,尝试使用此功能设置光标位置,例如:

    尝试按下按钮Text with jQuery来填充文本框,然后尝试自己编写。

    $('#clear').on('click', function() {
      $("#screen").val("");
    });
    
    $('#fill').on('click', function() {
      $('#screen').val("Hello! What a wonderful day today.");
    });
    
    $('#screen').focus(function() {
      setTimeout((function(el) {
        var strLength = el.value.length;
        return function() {
        if(el.setSelectionRange !== undefined) {
          el.setSelectionRange(strLength, strLength);
        } else {
          $(el).val(el.value);
        }
      }}(this)), 0);
    });
    .container {
      width: 30%;
    }
    
    #screen {
      width: 100%;
      font-size: 2em;
      padding: 0 0.5em 0 0.5em;
      border: solid 1px #ccc;
      text-align: right;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="container">
      <input id="screen" type="text">
    </div>
    
    <button id="clear">Clear Text</button>
    <button id="fill">Text with jQuery</button>

    我希望我明白你的想法,或者这个答案可能有所帮助

    【讨论】:

    • 非常感谢!有效。我只需要.focus()$('#screen').val("Hello! What a wonderful day today.") 即可触发您的焦点功能并获得所需的结果! :)
    猜你喜欢
    • 1970-01-01
    • 2013-05-31
    • 2016-03-25
    • 2017-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多