32

私はhttp://digitalbush.com/projects/masked-input-plugin/を見ています

私はそれをこのように呼んでいます:

$(control).mask('999-999-9999');

そして、何かが間違っている場合、たとえばユーザーが終了していない場合に、ユーザーの入力を破棄したくありません

[407-555-____]

これだけ入力した後でフィールドを離れると、フィールドがクリアされます。後で終わらせることができるように残しておきたいと思います。

私はjQueryを初めて使用し、彼のソースを調べましたが、コードが難解であるため、それを行う方法も、編集して目的を達成する方法も見つかりません。目。

4

7 に答える 7

58

autoclearオプションをfalseに設定します。

$(control).mask('999-999-9999', {autoclear: false});
于 2014-02-07T19:54:54.660 に答える
46

マスク全体をオプションにする必要があるようです。

mask('?999-999-9999')

そうすれば、コントロールはユーザーが持っているものが「有効」であると判断し、続行できます。それは実際にはマスクのオプション部分ではありませんが。

于 2012-03-20T21:31:11.023 に答える
2

input.val("");適切な解決策を得るには、checkVal()関数内のステートメントを削除する必要があります。

縮小バージョンを使用している場合は、ステートメントを検索して削除する必要があります。

if(!a&&c+1<i)f.val(""),t(0,k);else
于 2012-07-05T16:23:05.550 に答える
0

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();
})
于 2013-03-28T17:09:29.993 に答える
0

プレースホルダーを追加すると、問題を解決できる可能性があります。

$(control).mask('999-999-9999');

空のプレースホルダーをマスクに追加します。下記参照

$(control).mask('999-999-9999', { placeholder: "" });

これは、デフォルトで入力テキストフィールドの_を置き換えます。したがって、入力の長さが動的で固定されていない場合は、ボットが残ります。

于 2013-04-25T23:08:29.380 に答える
0

ファイルjquery.maskedinput.jsを更新してみてください

関数関数checkVal(allow)で、パラメータallowontrueを設定します。それは私にとって助けになります。

 function checkVal(allow) {
                    allow = true; ///add this command
//..............
}
于 2013-07-23T13:34:56.997 に答える
-2

プラグスクリプトを探して、マスク解除メソッドを探します。

$('#checkbox').unmask();
于 2015-01-28T18:12:21.780 に答える