相关疑难解决方法(0)

jQuery在文本区域中设置光标位置

如何使用jQuery在文本字段中设置光标位置?我有一个包含内容的文本字段,我希望用户光标在关注字段时定位在某个偏移处.代码应该看起来像这样:

$('#input').focus(function() {
  $(this).setCursorPosition(4);
});
Run Code Online (Sandbox Code Playgroud)

setCursorPosition函数的实现是什么样的?如果您有一个内容为abcdefg的文本字段,则此调用将导致光标定位如下:abcd**|**efg.

Java有一个类似的功能,setCaretPosition.javascript是否存在类似的方法?

更新:我修改了CMS的代码以使用jQuery,如下所示:

new function($) {
  $.fn.setCursorPosition = function(pos) {
    if (this.setSelectionRange) {
      this.setSelectionRange(pos, pos);
    } else if (this.createTextRange) {
      var range = this.createTextRange();
      range.collapse(true);
      if(pos < 0) {
        pos = $(this).val().length + pos;
      }
      range.moveEnd('character', pos);
      range.moveStart('character', pos);
      range.select();
    }
  }
}(jQuery);
Run Code Online (Sandbox Code Playgroud)

html javascript jquery textfield

434
推荐指数
10
解决办法
33万
查看次数

在contentEditable div中获取插入位置

我找到了很多关于如何在contentEditable DIV中设置光标或插入位置的好的,交叉浏览器的答案,但是没有关于如何获取或找到它的位置......

我想要做的是在关键字中知道该div中插入符号的位置.

因此,当用户输入文本时,我可以随时知道其光标在div中的位置.

编辑:我在div内容(文本)中寻找INDEX,而不是光标坐标.

<div id="contentBox" contentEditable="true"></div>

$('#contentbox').keyup(function() { 
    // ... ? 
});
Run Code Online (Sandbox Code Playgroud)

javascript caret contenteditable cursor-position

109
推荐指数
8
解决办法
10万
查看次数

JavaScript插入位置

我正在开发一个移动银行应用程序,我有兴趣实时格式化货币金额输入.

我已经测试了autoNumeric插件jQuery格式货币插件,但两者都在Android 2.*浏览器上有光标位置问题.

有没有人有与这个浏览器兼容的JavaScript解决方案?

javascript mobile jquery android cross-browser

40
推荐指数
1
解决办法
3323
查看次数

有没有办法阻止一个contenteditable的插入符号出现在IE10中?

在IE10中似乎存在一个错误,如果我将一个元素放在具有该contenteditable属性的另一个元素上,则编辑器的插入符将覆盖所有内容.

您可以在下面的图像和此jsFiddle中看到此行为.

例

我已经使用了大量的CSS属性,并且无法找到解决方案.它在其他浏览器中按预期工作.

我需要这个的原因是因为我正在设计一个WYSWIYG编辑器(TinyMCE fork)体验,工具栏在需要时向下滑动文本.此错误使插入符显示在工具栏的顶部.

我想到的唯一解决方案是模糊编辑器的焦点,并在工具栏消失时重新聚焦它.但是,这将阻止用户在激活工具栏时键入内容,并且还会导致跨浏览器的行为不一致.

这个bug有解决方法吗?

javascript css tinymce contenteditable internet-explorer-10

25
推荐指数
2
解决办法
2211
查看次数

CreateTextRange无法在Chrome中使用

在此代码中,createRange无法在Chrome中使用.在IE中,它正在运行.请帮忙解决这个问题.是否有任何其他属性可以像创建范围一样工作.这样对我的项目很有帮助.

<script language=javascript>

    var isSelected;
    function markSelection ( txtObj ) {
      if ( txtObj.createTextRange ) {
        txtObj.caretPos = document.selection.createRange().duplicate();
        isSelected = true;
      }
    }

    function insertTag ( txtName, enclose ) {
        if(document.f_activity_email == null) {
            var tag = document.getElementById('EmailTokenID').value;
        }
        else {
            var formC = document.f_activity_email;
            var tag = formC.EmailTokenID.value;
        }
        var closeTag = tag;
        if ( enclose ) {
            var attribSplit = tag.indexOf ( ' ' );
            if ( tag.indexOf ( ' ' ) > -1 ) …
Run Code Online (Sandbox Code Playgroud)

javascript compatibility google-chrome

14
推荐指数
3
解决办法
3万
查看次数

在我输入时如何格式化输入框文本

如何在html输入框中输入数字时格式化数字?

所以例如,我想输入数字2000,当我键入第4位时,文本(当前显示在文本框中)将自动格式化为2,000(用逗号).

//my modified code based on Moob answer below

<input type="text" class="formattedNumberField" onkeyup="myFunc()">

//jQuery
$(".formattedNumberField").on('keyup', function(){
    var n = parseInt($(this).val().replace(/\D/g,''),10);
    $(this).val(n.toLocaleString());
});

function myFunc(){
// doing something else
}
Run Code Online (Sandbox Code Playgroud)

虽然这个代码工作完美,如Moob Fiddle所示,它不能在我的结束可能因为我在输入框中有另一个onkeyup事件???

javascript jquery

10
推荐指数
2
解决办法
5万
查看次数

使用AngularJS在输入中设置插入位置

我需要更改输入的插入位置,其中添加了给定的位数(示例).

app.controller('MainCtrl', function($scope, $element, $timeout, $filter) {
  //$scope.val = '12';
  $scope.$watch('val', function(newValue, oldValue) {
    if (!isNaN(newValue)) {
      if (newValue.length > 3) {
        //Set Caret Position  
      }
    }
  });
});
Run Code Online (Sandbox Code Playgroud)

有可能做这样的例子吗?

我需要例如:

输入:1234.

所以插入符号位置为2.

新数字:9

决赛:12934

提前致谢.

javascript angularjs angularjs-scope

10
推荐指数
1
解决办法
3万
查看次数

HTML - 在用户类型时保留占位符

我有这样的输入:

<input value="My text" placeholder="Placeholder">
Run Code Online (Sandbox Code Playgroud)

当我在输入中输入内容时,占位符文本将消失,这是非常明显的.

现在,我想要做的是我希望占位符文本在用户输入时保留,以便您可以将占位符文本看作原始文本后面的背景文本:

占位符

编辑:我也希望能够使用JavaScript更改背景文本.

html javascript css

10
推荐指数
2
解决办法
2万
查看次数

将光标设置到textarea中特定行的特定位置

我试图在某种程度上复制Microsoft Office的Outlook等程序中出现的"自动更正"功能.

对于初学者,只要用户在一行的开头键入"a"(字母a和空格),我想将该文本更改为"*Agent ["

如果你在textarea中从上到下打字,我写下面的内容可以正常工作.但是,如果您在textarea中的任何其他位置键入文本,则会更改文本,然后光标移动到textarea的末尾.

我希望光标始终放在更改文本的末尾.

我有变量中的行号,currentLineNumber我知道光标需要在该行的第8个字符之后,但我不确定如何告诉它去那里

理想情况下喜欢喜欢的东西

function setCursor(row, position) {
 //.... code to set cursor 
}
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能做到这一点?我对javascript或jQuery解决方案持开放态度(虽然我发现jQuery有点难以阅读和理解)

如果有更好的方法来实现我的整体需求,我也会对此持开放态度.

如果你不明白这个问题,这里有一个jsFiddle

javascript jquery textarea cursor textselection

9
推荐指数
1
解决办法
2万
查看次数

如何捕获event.keyCode并将其更改为另一个keyCode?

我在这里检查了其他问题,但他们没有回答我的问题.我想简单地捕获某些keyCode并将其替换为另一个.我正在处理角色,而不是白色空间,我不需要松散焦点等.

以下是我的代码.但是你可以用你的那些替换那些keyCodes(例如,当按下大写"A"时,它应该替换为零0等).想法是替换keyCode.

phrase.keypress(function(event)
{
    if (event.shiftKey)
    {
        switch (event.keyCode)
        {
            // Cyrillic capitalized "?" was pressed
            case 1053: event.keyCode = 1187; event.charCode = 1187; event.which = 1187; break;
            // Cyrillic capitalized "?" was pressed
            case 1054: event.keyCode = 1257; event.charCode = 1257; event.which = 1257; break;
            // Cyrillic capitalized "?" was pressed
            case 1059: event.keyCode = 1199; event.charCode = 1199; event.which = 1199; break;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我也试过keydown和keyup.它们不会改变keyCode.我怎样才能做到这一点?

PS如果可能的话,我正在寻找一种解决方案,它不会"event.preventDefault()并手动将所需的键插入输入字段,然后将光标移动到末尾".我想要更清洁和"正确"的解决方案.谢谢.

javascript jquery keycode

8
推荐指数
2
解决办法
2万
查看次数