callback

callback button with modal window using vuejs 2.0

by schel4ok

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<div id="app">

<div class="callback">

  <a class="btn btn-primary btn-large" href="#callback" title="Обратный звонок" data-toggle="modal" data-target="#callback">
    <i class="fa fa-phone"> </i> Обратный звонок {{ name }}</a>
  </p>
  
</div>


<div class="modal fade" id="callback" tabindex="-1" role="dialog" aria-labelledby="callback" aria-hidden="true">
  <div class="modal-dialog">

    <form name="callback" ng-controller="callbackController" role="form" class="" enctype="multipart/form-data">

    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
        <h4 class="modal-title" id="CallbackModalLabel"><i class="fa fa-envelope-o text-primary"></i>  Отправить письмо / Попросить перезвонить</h4>
      </div>
      <div class="modal-body">


    	 <div class="text-primary">* обязательное поле</div>



        <div class="col-sm-6">
          <div class="input" ng-class="{ 'has-error': callback.name.$touched && callback.name.$invalid, 'has-success': callback.name.$touched && callback.name.$valid }">
            <input id="name" name="name" ng-model="name" type="text" ng-minlength="3" ng-maxlength="20" required>
            <label for="name">Ваше имя *</label>
                <div class="help-block" ng-messages="callback.name.$error" ng-if="callback.name.$touched">
                  <p ng-message="minlength">Имя слишком короткое. Минимум 3 символа!</p>
                  <p ng-message="maxlength">Имя слишком длинное. Максимум 20...

JavaScript

const app = new Vue({

    el: '#app',

    data: {
	    furnitura: [],
	    loading: false,
	    error: false,
    	name: 'ali g'
	},

	methods: {
	    search: function() {
	        this.error = '';
	        this.furnitura = [];
	        this.loading = true;

	    }
	}

});