J'ai une entrée de texte dans laquelle je ne veux pas d'espaces. Si quelqu'un tape un espace ou colle un texte avec un espace, j'aimerais que le texte redevienne ce qu'il était avant l'entrée de l'espace ET que la position du curseur reste la même. Il y a peut-être un moyen plus simple de faire cela, mais je n'y arrive pas.
Voici ce que j'ai pour l'instant :
<html><head><title>Test</title></head><body>
<input type=text id="inputText" value="testValue" onInput=doIt(this);>
</body></html>
Et le javascript à inclure (j'ai utilisé jsFiddle) :
var editedValue = "testValue";
// alert(editedValue);
function doIt(that)
{
var caretPos = that.selectionStart;
if (that.value.indexOf(" ") != -1)
{
that.value = editedValue;
// alert(caretPos);
that.selectionStart = caretPos;
}
else
{
editedValue = that.value;
}
}
Tout semble fonctionner, sauf que si le curseur se trouve au milieu du texte et que vous tapez ou collez des espaces, le curseur ne revient pas à sa position d'origine.
Quelqu'un peut-il m'aider à résoudre ce problème ? Ou me montrer un moyen entièrement nouveau/facile/simple de ne pas autoriser les espaces tapés ou collés dans une entrée de texte ?
Voici le jsfiddle avec lequel j'ai essayé de le faire, si cela peut aider : http://jsfiddle.net/djSnL/4/