2014-01-26 81 views
0

嗯,我試圖掩蓋我的magento商店的手機號碼字段。我想要使​​用的面具是「(599)999 9999」。jQuery Masked Input |正確輸入電話號碼字段後,無法刪除掩碼

如果用戶輸入的電話號碼正確,我想刪除掩碼並修剪像「(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 
}); 

回答

0

設置模糊內超時似乎工作:

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

Demo

我寧願捕獲change事件來更新值。

+0

非常感謝您的幫助! 我改變它改變事件並作了一些修改。它工作得很好。 http://jsfiddle.net/qhzr5/ – ilkb