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">×</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;
}
}
});