スペースを入れたくないテキスト入力があります。誰かがスペースを入力したり、スペースを含むテキストを貼り付けたりした場合、テキストをスペースが入力される前の状態に戻し、キャレット位置を維持したいと思います。同じ。これを行う簡単な方法があるかもしれませんが、私はそれを理解できません。
これは私がこれまでに持っているものです:
<html><head><title>Test</title></head><body>
<input type=text id="inputText" value="testValue" onInput=doIt(this);>
</body></html>
そして、含まれるJavaScript(私は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;
}
}
キャレットがテキストの途中にあり、スペースを入力または貼り付けた場合、キャレットが元の位置に戻らないことを除いて、すべて機能しているようです。
誰でもこれを理解するのを手伝ってもらえますか? または、テキスト入力にスペースを入力または貼り付けることを許可しない、まったく新しい/より簡単/簡単な方法を教えてください。
これが役立つ場合に試していたjsfiddleです:http://jsfiddle.net/djSnL/4/