2016-05-25 23 views
1

Ich verwende das jsmask-Plugin, um Telefonnummern zu maskieren. Die Anforderungen sindBenutzerdefinierte Maske für Telefonnummern

  1. Es kann zu Beginn optional + haben
  2. Es haben Räume zwischen

Ich habe versucht, diese $('#Telephone').mask('+0000000 000 000 0000', { reverse: true }); aber es aint optional und zu akzeptieren. Gibt es ein eingebautes Format oder können wir ein benutzerdefiniertes Format dafür haben Bitte beraten.

Antwort

0

Das ist unmöglich.

Sie können optionale Parameter nur am Ende der Eingabe hinzufügen.

Sie haben eine offene Pull-Anfrage in Github.

Sie können es überprüfen here.

0

Der folgende Code funktioniert, Sie können es versuchen. Ich habe solution in JSfidller für Sie erstellt. überprüfen Sie es, wenn Sie möchten. HTML:

<form id="example-form" name="my-form"> 
    <label>Phone number:</label><br /> 
    <input id="phone-number" name="phone-number" type="text" maxlength="21" placeholder="+XXXXXXX XXX XXX XXXX" /><br /><br /> 
    <input type="button" value="Submit" /> 
</form> 

Script:

$('#phone-number', '#example-form') 

     .keydown(function (e) { 
      var key = e.charCode || e.keyCode || 0; 
      $phone = $(this); 

      // Adding blankspace in 9th, 13th and 17th position. 
//Change it according to your need 
      if (key !== 8 && key !== 9) { 
       if ($phone.val().length === 8) { 
        $phone.val($phone.val() + ' '); 
       } 
       if ($phone.val().length === 12) { 
        $phone.val($phone.val() + ' '); 
       }   
       if ($phone.val().length === 16) { 
        $phone.val($phone.val() + ' '); 
       } 
      } 

      // Allow numeric number and tab, backspace, delete keys only. 
//Change it according to your need 
      return (key == 8 || 
        key == 9 || 
        key == 46 || 
        (key >= 48 && key <= 57) || 
        (key >= 96 && key <= 105)); 
     }) 

     .bind('focus click', function() { 
      $phone = $(this); 

      if ($phone.val().length === 0) { 
       $phone.val('+'); // as your phone number start with '+' 
      } 
      else { 
       var val = $phone.val(); 
       $phone.val('').val(val); // Ensure cursor remains at the end 
      } 
     }) 

     .blur(function() { 
      $phone = $(this); 

      if ($phone.val() === '+') { 
       $phone.val(''); // if somebody type '+' it will be vanish 
      } 
     });