2.1.4 • Published 4 years ago

vue-tel-input-fix v2.1.4

Weekly downloads
55
License
MIT
Repository
github
Last release
4 years ago

vue-tel-input

International Telephone Input with Vue.

Checkout Demo at Github pages.

Installation

  • yarn:
      yarn add vue-tel-input-fix
  • npm:
      npm i --save vue-tel-input-fix

Usage

  • Import default CSS to your project:

    import 'vue-tel-input-fix/dist/vue-tel-input.css';
  • Install as a global component:

    import Vue from 'vue'
    import VueTelInput from 'vue-tel-input-fix'
    
    Vue.use(VueTelInput)
  • In your component:

    <template>
    ...
       <vue-tel-input v-model="phone"
                      @onInput="onInput"
                      <!-- optional -->
                      :preferredCountries="['us', 'gb', 'ua']">
       </vue-tel-input>
    ...
    <template>
    <script>
    export default {
      data() {
        return {
          phone: '',
        };
      },
      methods: {
        /**
         * @param {string} number
         * the phone number inputted by user, will be formatted along with country code
         * // Ex: inputted: (AU) 0432 432 432
         * // number = '+61432421546'
         *
         * @param {Boolean} isValid
         * @param {string} country
         */
         onInput({ number, isValid, country }) {
           console.log(number, isValid, country);
         },
      },
    }
    </script>

Use as a custom field of vue-form-generator

  • Add a component with vue-form-generator's abstractField

    // tel-input.vue
    <template>
      <vue-tel-input v-model="value"></vue-tel-input>
    </template>
    
    <script>
    import VueTelInput from 'vue-tel-input-fix'
    import { abstractField } from 'vue-form-generator';
    
    export default {
      name: 'TelephoneInput',
      mixins: [abstractField],
      components: {
        VueTelInput,
      },
    };
    </script>
  • Register the new field as a global component

      import Vue from 'vue';
      import TelInput from '<path>/tel-input.vue';
    
      import 'vue-tel-input-fix/dist/vue-tel-input.css';
    
      Vue.component('field-tel-input', TelInput);
  • Now it can be used as tel-input in schema of vue-form-generator

    var schema: {
      fields: [{
          type: "tel-input",
          label: "Awesome (tel input)",
          model: "telephone"
      }]
    };

    Read more on vue-form-generator's instruction page

Props

Property valueTypeDefault valueDescription
defaultCountrystring''Default country, will override the country fetched from IP address of user
disabledFlagsDropdownBooleanfalseDisable dropdown with country flags
disabledBooleanfalseDisable input field
placeholderstringEnter a phone numberPlaceholder for the input
requiredBooleanfalseRequired property for HTML5 required attribute
enabledFlagsBooleantrueEnable flags in the input
preferredCountriesArray[]Preferred countries list, will be on top of the dropdown. ie ['AU', 'BR']
onlyCountriesArray[]List of countries will be shown on the dropdown. ie ['AU', 'BR']
ignoredCountriesArray[]List of countries will NOT be shown on the dropdown. ie ['AU', 'BR']

Events

Property valueArgumentsDescription
onInputObjectFires when the input changes with the argument is the object includes { number, isValid, country and id element }
onValidateObjectFires when the correctness of the phone number changes (from true to false or vice-versa) and when the component is mounted { number, isValid, country }
onBlurFires on blur event

Highlights & Credits

Demo Usage

# install dependencies
$ yarn/npm install

# compile demo for development
$ yarn/npm dev

# open Browser and start serve in demo
$ yarn/npm demo:open

# compile dist demo
$ yarn/npm dist:demo

# compile dist
$ yarn/npm dist

Contributors

made with by Steven.

2.1.4

4 years ago

2.1.3

4 years ago

2.1.2

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.16

5 years ago

2.0.15

5 years ago

2.0.14

5 years ago

2.0.13

5 years ago