【问题标题】:Deselect text with Javascript使用 Javascript 取消选择文本
【发布时间】:2011-11-09 18:50:54
【问题描述】:

我在一个 html 页面的表单中有两个带有数字 id 的输入标签。在焦点上,我想从第一个输入的第一个和第二个字符设置第二个输入的值。然后我想在第二个输入中取消选择选定的文本。有办法做到这一点吗? 我写了这段 HTML 代码:

<label>Num. Fattura:
        <input type="text" name="numfattura1" onkeypress="return event.keyCode != 13" id="1" />
    </label>
    <label>Importo:
        <input type="text" name="importo1" onkeypress="return event.keyCode != 13" />
    </label>
    <br />
    <label>Num. Fattura:
        <input type="text" name="numfattura2" onkeypress="return event.keyCode != 13" id="2" onfocus="twoDigits(2)" />
    </label>
    <label>Importo:
        <input type="text" name="importo2" onkeypress="return event.keyCode != 13" />
    </label>
    <br />

还有这个javascript函数:

function twoDigits(id){
    var previousId = id - 1;
    var prevoiusValue = document.getElementById(previousId).value;
    document.getElementById(id).value = prevoiusValue.substring(0,2);
    document.selection.empty();
    window.getSelection().removeAllRanges()
}

我找不到如何取消选择自动选择的文本。

【问题讨论】:

标签: javascript


【解决方案1】:

使用 setTimeOut 设置 selectionStart 和 selectionEnd。

http://jsfiddle.net/enQvT/ 在 Firefox 中工作。

function twoDigits(id){
    var previousId = id - 1;
    var prevoiusValue = document.getElementById(previousId).value;

    var elem = document.getElementById(id);
    setTimeout(function() {
               elem.selectionStart=0;
                elem.selectionEnd=0;
                }, 0);
    elem.value = prevoiusValue.substring(0,2);
}

【讨论】:

    【解决方案2】:

    在另一个表单元素上调用.focus()

    【讨论】:

    • 谢谢;但我不能...在第二个输入值更改后,我必须修改文本...
    • @AndreaVenanzi,那么我不明白你想要完成什么。
    【解决方案3】:

    您也可以清空并重新填充输入。 如果你想测试:

    <input type="textfield" id="aaa" value="aaa" />
    <input type="textfield" id="bbb" value="bbb" onmouseover="empty()"  />
    
    <script>
    var empty = function() {
        var ipt = document.getElementById('aaa');
        var iptval = ipt.value;
        ipt.value = "";
        ipt.value = iptval;
    }
    </script>
    

    【讨论】:

    • 你确定吗?你怎么称呼这个?它对我很有用。
    • 我在我的 twoDigits(id) 函数中调用你的函数(在 var empty = function(id) { var ipt = document.getElementById(id); 中修改):empty(id);在 Safari 中它不起作用,文本保持选中状态 :(
    猜你喜欢
    • 2010-10-22
    • 1970-01-01
    • 2018-04-20
    • 2011-09-27
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    相关资源
    最近更新 更多