我在一个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()
}
我找不到如何取消选择自动选择的文字。
答案 0 :(得分:1)
您也可以清空并重新填充输入。 如果你想测试:
<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>
答案 1 :(得分: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 :(得分:0)
在另一个表单元素上调用.focus()
。