私は http://digitalbush.com/projects/masked-input-plugin/ を見ています
私はこのように呼んでいます:
$(control).mask('999-999-9999');
そして、何かが間違っている場合、ユーザーの入力を破棄したくありません。彼らは終わっていない
[407-555-____]
これだけ入力した後にフィールドを離れると、クリアされます。後で終了できるように、そのままにしておきます。
私はjQueryを初めて使用し、彼のソースを調べましたが、それを行う方法を見つけることができません。目。
マスク全体をオプションにする必要があるようです:
mask('?999-999-9999')
そうすれば、コントロールはユーザーが持っているものを「有効」と見なし、続行できます。マスクの実際のオプション部分ではありませんが。
Autoclearオプションをfalseに設定します。
$(control).mask('999-999-9999', {autoclear: false});
適切に解決するには、input.val("");
関数のステートメントcheckVal()
を削除する必要があります。
縮小版を使用している場合は、ステートメントを検索して削除する必要があります。
if(!a&&c+1<i)f.val(""),t(0,k);else
CheckVal()でinput.val( "")を削除することに加えて、clearBufferへの呼び出しを変更することもできます。元のコードでは:clearBuffer(0、len);すべてのユーザー入力を削除します。これをclearBuffer(lastMatch + 1、len)に変更すると、ユーザー入力が表示され、続いて正しい入力を完了するために必要なマスクプレースホルダーが表示されます。
また、.bindにユーザーメッセージを追加しました。正確に1種類の入力にMaskedInputを使用しているため、これは機能します。位置7より先に進んでいる入力があるかどうかを確認しています。これは、ユーザー入力が開始される場所だからです。
ここに私がやったことがあります:
.bind("blur.mask", function() {
// find out at which position the checkVal took place
var pos = checkVal();
// if there was no input, ignore
if (pos <=7) {input.val(""); clearBuffer(0, len);}
// if the user started to input something, which is not complete, issue an alert
if (pos > 7 && pos < partialPosition) alert("Tell the user what he needs to do.");
if (input.val() != focusText)
input.change();
})
更新ファイルjquery.maskedinput.jsを試してください
関数では、checkVal(allow)関数でtrueのパラメーターallowを設定します。私の助け。
function checkVal(allow) {
allow = true; ///add this command
//..............
}
プレースホルダーを追加すると、問題を解決できます。
$(control).mask('999-999-9999');
空のプレースホルダーをマスクに追加します。下記参照
$(control).mask('999-999-9999', { placeholder: "" });
デフォルトでは、入力テキストフィールドの_を置き換えます。入力の長さが動的で固定されていない場合、ボットは_のままになります。