@pet1987

Как убрать автоматическое появление клавиатуры при открытии формы?

Всем доброго времени суток!
На сайте форма обратной связи открывающееся в модальном окне.
Проблема в том, что когда со смартфона Android или Iphone захожу на сайт и открываю форму с модальным окном, то на смартфоне автоматически открывается клавиатура для заполнения формы?
Как сделать так, что бы при открытии формы клавиатура не появлялась автоматически? Как это регулируется кодом?
Код формы такой:
<div id="inline_0" class="fancybox-content" style="display: inline-block;">
<form id="contact_0" action="#" method="post" name="contact">
<p>Имя<span>*</span></p>
<input id="name_0" class="txt_0" name="name" type="name" placeholder="Ваше имя">
<p>Телефон<span>*</span></p>
<input id="phone_0" class="txt_0 phone" name="phone" type="phone" placeholder="Ваш телефон">
<p>E-mail<span>*</span></p>
<input id="email_0" class="txt_0" name="email" type="email" placeholder="Ваш e-mail">
<p>Комментарий или сообщение<span>*</span></p>
<textarea id="msg_0" class="txtarea_0" name="msg" placeholder="Ваше сообщение:"></textarea>
<button id="send_0">Оставить заявку</button>
</form>
<button type="button" data-fancybox-close="" class="fancybox-button fancybox-close-small" title="Close"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"></path></svg></button></div>


<script>
function validateEmail(email) { 
var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9] {1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return reg.test(email);}
jQuery(document).ready(function() {
jQuery(".modalbox").fancybox();
jQuery("#contact_0").submit(function() {return false;});
jQuery("#send_0").on("click", function() {
var emailval = jQuery("#email_0").val();
var namevl = jQuery("#name_0").val();
var phonevl = jQuery("#phone_0").val();
var msgval = jQuery("#msg_0").val();
var msglen = msgval.length;
var mailvalid = validateEmail(emailval);
if(mailvalid == false) {
  jQuery("#email_0").addClass("error");
 }
else if(mailvalid == true) {
  jQuery("#email_0").removeClass("error");
 }
if(mailvalid == false) {
  jQuery("#name_0").addClass("error");
 }
else if(mailvalid == true){
  jQuery("#name_0").removeClass("error");
 }
if(mailvalid == false) {
  jQuery("#phone_0").addClass("error");
 }
else if(mailvalid == true){
  jQuery("#phone_0").removeClass("error");
 }
if(msglen < 4) {
  jQuery("#msg_0").addClass("error");
 }
else if(msglen >= 4){
  jQuery("#msg_0").removeClass("error");
 }
if(mailvalid == true && msglen >= 4) {
// если обе проверки пройдены
// сначала мы скрываем кнопку отправки
$("#send_0").replaceWith("<em>отправка...</em>");
 jQuery.ajax({
 type: 'POST',
 url: '/php/sendmessage.php',
 data: jQuery("#contact_0").serialize(),
  success: function(data) {
  if(data == "true") {
   jQuery("#contact_0").fadeOut("fast", function(){
   jQuery(this).before("<p style='text-align:center;font-size:25px;'><strong>Ваше сообщение отправлено</strong></p><p style='text-align:center;'><strong>Наш менеджер свяжется с вами в ближайшее время</strong></p>");
   setTimeout("jQuery.fancybox.close()", 1000);
   });
  }
  }
  });
  }
 });
 });
</script>

Так же есть CSS код и PHP код для отправки письма.
  • Вопрос задан
  • 836 просмотров
Пригласить эксперта
Ответы на вопрос 2
@skuvaWeb
В Документации есть autoFocus, по умлочанию он включен. Возможно можно инлайново отключить, что-то вроде data-autofocus="false" на модальном окне
Ответ написан
Комментировать
Adamos
@Adamos
захожу на сайт и открываю форму с модальным окном

Первый же инпут на форме получает фокус ввода, и
на смартфоне автоматически открывается клавиатура для заполнения формы

Все логично.
Для перехвата фокуса можно вставить в форму вот такой костылик:
<input type="hidden" autofocus="true" />
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы