0

さて、私は私のmagentoストアの携帯電話番号フィールドをマスクしようとしています. 使いたいマスクは「(599)9999999」です。

ユーザーが電話番号を正しく入力した場合、マスクを削除して、「(532) 123 45 67」->「5321234567」のような空白と括弧を削除したいと考えています。数字の入力が不完全な場合、マスク機能で入力欄が自動でクリアされるのでいいのですが、入力が正しければマスクなしで表示させたいです。

このステップで行き詰まり、カスタム出荷モジュールの要件を完了できません。どんな助けでも素晴らしいでしょう。

JSFiddle のリンクは次のとおりです: http://jsfiddle.net/KKhKV/4/

HTML:

<input type="text" name="billing[telephone]" value="" title="<?php echo $this->__('Telephone') ?>" class="input-text" id="billing:telephone" />

<input type="text" id="sec" />

JavaScript:

var mask = "(599) 999 9999";
//jQuery("#billing\\:telephone").mask(mask);

jQuery("#billing\\:telephone").focus(function () {
    jQuery("#billing\\:telephone").val("");
    jQuery("#billing\\:telephone").mask(mask);
    jQuery("#billing\\:telephone").val("(5");
})
    .blur(function () {

        jQuery("#billing\\:telephone").unmask(mask);
        var a = jQuery("#billing\\:telephone").val();

        var reg = new RegExp(" ","g");
        a = a.replace(reg,"");
        a = a.replace("(","");
        a = a.replace(")","");
        //jQuery("#billing\\:telephone").val(a); THIS DOES NOT WORK
        jQuery("#sec").val(a); // THIS WORKS NICE
});
4

1 に答える 1

0

ぼかしの中でタイムアウトを設定するとうまくいくようです:

.blur(function () {
    setTimeout(function () {
        jQuery("#billing\\:telephone").val(a);
    }, 1);
});

デモ

イベントをトラップしchangeて値を更新したいと思います。

于 2014-01-26T16:49:18.670 に答える