2017-04-26 10 views
1


値の長さに基づいて入力テンプレートのマスクを変更する方法がわかりません。

例:私は2つの車番号テンプレート'99 -999-99 'と' 999-99-999 'を持っています。私は値の長さに基づいて入力マスクを変更する必要があります。

値の長さが7以下の場合、テンプレートは'99 -999-99 'でなければなりません。値の長さが7より大きい場合、テンプルは '999-99-999'でなければなりません。jquery値の長さに基づいて入力マスクテンプレートを変更する

マイコード:

$("#carnum").keyup(()=>{ 
    var masks = ['99-999-99', '999-99-999']; 
    var value = $('#carnum').val().replace(/-/g, ''); 
    value.length <= 7 ? -1 : $('#carnum').mask(masks[1]); 
}) 
$("#carnum").mask('99-999-99'); 

ここfiddleです。

ありがとうございました!それのマスクを解除することがベストプラクティスである同じ要素を再びマスキング前

答えて

2

、 ここでは、動的または条件

var changeMask=0; 
$("#carnum").keyup(()=>{ 
    var masks = ['99-999-99', '999-99-999']; 
    var value = $('#carnum').val().replace(/-/g, '').replace(/_/g,''); 
    if(value.length==7){ 
    changeMask++; 
    } 
    if(changeMask>1&&value.length>=7) { 
    $('#carnum').unmask(masks[0]); 
    $('#carnum').mask(masks[1]); 
    var arrayValue=value.split(""); 
    $("#carnum").val(""); 
    for(var index=0;index<arrayValue.length;index++){ 
    $("#carnum").val(function(i, val) { 
     return val + arrayValue[index]; 
    }).trigger('input'); 
    } 
    } 
}) 
$("#carnum").mask('99-999-99'); 

Working fiddle here

マスクを変更するためのサンプルコードの参照です
関連する問題