J'ai deux balises d'entrée avec un identifiant numérique sous une forme dans une page html. Sur le focus, je voudrais définir la valeur de la deuxième entrée à partir du premier et du deuxième caractère de la première entrée. Ensuite, je veux désélectionner le texte sélectionné dans la deuxième entrée. Il y a une façon de faire cela? J'ai écrit ce code 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 />
Et cette fonction 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()
}
Je ne trouve pas comment désélectionner le texte sélectionné automatiquement.
3 réponses
Définissez selectionStart et selectionEnd à l'aide de setTimeOut.
http://jsfiddle.net/enQvT/ fonctionne dans 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);
}
Appelez .focus()
sur un autre élément de formulaire.
Vous pouvez également vider et recharger l'entrée. Si vous souhaitez tester:
<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>
Questions connexes
Questions liées
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.