テキスト領域に複数のスペースを入力しないようにするために、キーアップで関数を呼び出し、onCLick
以下のコードを記述しています
var val = document.getelemntByID('trmp');
val.value = val .value.replace(/ +(?= )/g,'');
これは Firefox では正常に動作していますが、IE7 では動作していますが、単語を選択して削除すると、テキスト領域のコンテンツ全体が削除されるなど、他の問題が発生します。
テキスト領域に複数のスペースを入力しないようにするために、キーアップで関数を呼び出し、onCLick
以下のコードを記述しています
var val = document.getelemntByID('trmp');
val.value = val .value.replace(/ +(?= )/g,'');
これは Firefox では正常に動作していますが、IE7 では動作していますが、単語を選択して削除すると、テキスト領域のコンテンツ全体が削除されるなど、他の問題が発生します。
バグが発生する可能性があるため、テキストエリアの値を常に書き換えないことをお勧めします。前の文字がスペースの場合、入力スペースを無効にするだけです:
$(function(){
var $tA=$('#temp');
$tA.keydown(function(e){
var cursorPos = getCursorPosition($tA.get(0));
if(e.which === 32 && cursorPos > 0 && $tA.val()[cursorPos-1] === ' '){
return false;
}
});
});
getCursorPosition = function(el) {
var pos = 0;
// IE Support
if (document.selection) {
el.focus();
var Sel = document.selection.createRange();
var SelLength = document.selection.createRange().text.length;
Sel.moveStart('character', -el.value.length);
pos = Sel.text.length - SelLength;
}
// Firefox support
else if (el.selectionStart || el.selectionStart == '0')
pos = el.selectionStart;
return pos;
}
スペースのみに正規表現を使用します。キーコード条件を追加します。
このフィドルをチェックしてくださいhttp://jsfiddle.net/hikki/FNJmE/