入力フィールドで値の置換を実行しようとしています。ほとんど正常に動作しています。value replaceは入力の最後に値を正しく追加しません。
<input id="boom" value="03/15/0212" />
のjQuery::私はハードすべての機能
を置くことから保つためにいくつかの値をコード化している問題は、私が唯一それが一箇所HTMLに追加したい入力の末尾に付加価値を与えています
$('#boom').on('keypress', function (e)
{
var crs = this.selectionStart;
var from;
var to;
var sub;
_dateSection = 'month';
var currentObj = this;
var currentVal = $(this).val();
var c = String.fromCharCode(e.which);
var stringSplit = currentVal.split('/');
switch (_dateSection) {
case 'month':
_currentDateValue = stringSplit[0];
from = 0;
to = 2;
sub = currentVal.substring(from, to);
break;
case 'day':
_currentDateValue = stringSplit[1];
from = 3;
to = 6;
sub = currentVal.substring(from, to);
break;
case 'year':
_currentDateValue = stringSplit[2];
from = 6;
to = 10;
sub = currentVal.substring(from, to);
break;
};
var check = false;
if (!check) {
$(currentObj).val(function (index, value)
{
return value.replace(sub, c);
});
}
});
あなたは現在03に取り込まれた入力の月部分に3を追加した場合、それは置き換えられ、3で正しくBUですそれはまた、年末に3を追加します。年の値が2012年
残るべき時に、最終的な値は
3/15/2012
ない
3/15/2
でなければなりません20123、今年作る編集:
このコードは同じになります問題:
$(currentObj).val(currentVal.replace(sub, c));
としてこの
var replaceValue = currentVal.replace(sub, c)
$(currentObj).val(replaceValue);
なぜvalの中に関数を入れるのですか?スコープとエンクロージャの問題が発生する可能性があります。 – kappa
コードとフィドルが機能を持たないように更新しました。まだ同じ問題。 –