【问题标题】:I want my input to be written leftwards我希望我的输入向左写
【发布时间】:2012-07-19 10:43:16
【问题描述】:

我知道这可以通过使用 window.getSelection() 方法在 javascript 中实现,但我不熟悉这个选择对象。 你能帮我写一段代码,让用户的书写光标总是在输入字符串的开头吗?

$('input[type="text"]')
    .attr('maxlength','7')
    .keyup(function(){
        var sel = window.getSelection();
        console.log(sel);
        // need a code for here to make the cursor (caret) at the begining of the string

    })

【问题讨论】:

    标签: javascript html window getselection


    【解决方案1】:

    可以使用以下组合来完成:

    • dir = "rtl"
    • 每次按键后将文本框插入符号移至 0

    演示:http://jsfiddle.net/FF9Tf/1/

    注意:使用这些答案中的提示/代码。

    【讨论】:

      【解决方案2】:

      你总是可以使用 CSS direction: rtl; 这行代码只是将文本的方向更改为从右到左 然后你可以使用.addClass("your_class")将css类添加到你的html元素中

      请务必注意,此方法不会替换类。它只是添加类,将其附加到任何可能已经分配给元素的类。

      编辑: 尝试将 .addClass("your_class") 放在 keyup 函数之外(尽管这可能仍然无法为您提供您正在寻找的最佳结果),请查看下面的评论以获得更好的方法。

      更新:这是另一种方法

      $('input[type="text"]').change(function () {
      $(this).val() = $(this).split("").reverse().join("");
      });
      

      【讨论】:

      • 如果您从一开始就将类添加到 html 元素,而不是使用 jquery 进行 dom 操作,它应该可以工作。因为当您使用 jquery 时,会在浏览器完全呈现页面后应用更改。
      【解决方案3】:

      试试这个,它会让光标在输入框文本的开头一直闪烁

      $('input[type="text"]')
          .attr('maxlength','7')
          .attr('dir', "rtl")
          .keyup(function(){
              var sel = window.getSelection();
              console.log(sel);
              // need a code for here to make the cursor (caret) at the begining of the string
      
          })
      

      试试演示链接 http://jsfiddle.net/hcWCQ/1/

      在例如:点击输入框然后按Shift+TAB然后开始输入 不完全是你要找的......但在附近的某个地方

      【讨论】:

      • 为了获得更多的许可......你想要的是,如果你正在输入'stackoverflow',你希望它写成"wolfrevokcats",光标在w之前
      猜你喜欢
      • 1970-01-01
      • 2013-02-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 2013-01-30
      • 2020-10-10
      • 2019-04-26
      相关资源
      最近更新 更多