Показать / скрыть элемент формы [дубликат]

Если вы используете только функцию mail(), вам нужно заполнить конфигурационный файл.

Вам нужно открыть расширение почты и установить SMTP smtp_port и т. д., и самое главное, ваше имя пользователя и пароль. Без этого почта не может быть отправлена. Кроме того, вы можете использовать класс PHPMail для отправки.

60
задан Roko C. Buljan 28 March 2016 в 03:33
поделиться

7 ответов

Посмотрите на jQuery Toggle

HTML:

<div id='content'>Hello World</div>
<input type='button' id='hideshow' value='hide/show'>

jQuery:

jQuery(document).ready(function(){
    jQuery('#hideshow').live('click', function(event) {        
         jQuery('#content').toggle('show');
    });
});

Для версий jQuery 1.7 и более новое использование

jQuery(document).ready(function(){
        jQuery('#hideshow').on('click', function(event) {        
             jQuery('#content').toggle('show');
        });
    });

Демо

58
ответ дан Zared619 23 August 2018 в 01:23
поделиться
  • 1
    Теперь .live () устарела в 1.7 и удалена в 1.9, поэтому в новых версиях вы можете использовать .on () (для деталей api.jquery.com/on ) – Rohit Dubey 24 April 2015 в 12:25
  • 2
    Как вы устанавливаете это для скрытия по умолчанию? Редактировать. Выяснилось, просто добавили переключатель перед кодом, который ловит нажатие кнопки. – simonr2 19 April 2016 в 16:25
  • 3
    Как насчет w / o jQuery? Каждый может сделать это с помощью jQ – Green 28 May 2016 в 11:23
  • 4
    Это не работает для меня – ineedahero 21 October 2016 в 13:29
  • 5
    Я полагаю, что toggle('show') является опечаткой (некоторые из них явно копируются и вставляются в другие ответы), потому что только 'slow' и 'fast' принимаются строки для продолжительности. Тем не менее он работает, потому что я думаю, что любая недопустимая строка будет по умолчанию 'slow'. jsfiddle.net/d5y06e6o – Shikkediel 16 November 2016 в 00:57

Вы можете использовать следующее:

mydiv.style.display === 'block' = (mydiv.style.display === 'block' ? 'none' : 'block');

-1
ответ дан 4444 23 August 2018 в 01:23
поделиться
  • 1
    Ошибка JS: Недопустимое назначение левой руки. – CullenJ 18 July 2014 в 17:20
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('#hideshow').click(function(){
    $('#content').toggle('show');
  });
});
</script>

И html

<div id='content'>Hello World</div>
<input type='button' id='hideshow' value='hide/show'>
0
ответ дан Edwin Martin 23 August 2018 в 01:23
поделиться

Чистый JavaScript:

var button = document.getElementById('button'); // Assumes element with id='button'

button.onclick = function() {
    var div = document.getElementById('newpost');
    if (div.style.display !== 'none') {
        div.style.display = 'none';
    }
    else {
        div.style.display = 'block';
    }
};

СМОТРИТЕ ДЕМО

jQuery:

$("#button").click(function() { 
    // assumes element with id='button'
    $("#newpost").toggle();
});

СМОТРЕТЬ ДЕМО

120
ответ дан Piyush Gupta 23 August 2018 в 01:23
поделиться
  • 1
    Привет, любая идея, как заставить его переключаться с хорошим fadein / fadeout? – Dmitry Paranyushkin 6 March 2014 в 01:02
  • 2
    @deemeetree: вы можете передать 'slow' в toggle. Если вы используете чистое решение JS, дайте мне знать, и я могу придумать что-то для этого – Andrew Whitaker 6 March 2014 в 15:38
  • 3
    Спасибо, @Andrew Я также обнаружил, что в новом jQuery есть fadeToggle – Dmitry Paranyushkin 6 March 2014 в 16:22
  • 4
    Я просматривал другие вопросы, и я встретил ответ в этой теме: stackoverflow.com/questions/18808112/… ... По-видимому, это потому, что новые версии JQuery больше не поддерживают переключение , – Barry Michael Doyle 23 February 2015 в 17:04
  • 5
    @BarryDoyle: На самом деле, toggle-event устарел в 1.8. Способ, которым этот ответ использует toggle , по-прежнему доступен, см. В этом примере: jsfiddle.net/KpFRb/532 – Andrew Whitaker 23 February 2015 в 17:14

Вот простой способ Javascript:

<script>
  var toggle = function() {
  var mydiv = document.getElementById('newpost');
  if (mydiv.style.display === 'block' || mydiv.style.display === '')
    mydiv.style.display = 'none';
  else
    mydiv.style.display = 'block'
  }
</script>

<div id="newpost">asdf</div>
<input type="button" value="btn" onclick="toggle();">
19
ответ дан Roko C. Buljan 23 August 2018 в 01:23
поделиться
  • 1
    Хорошее, простое решение для JavaScript. Я бы просто рекомендовал, чтобы тип ввода был кнопкой, а не отправкой, поскольку submit отправит форму ... – Paul Sasik 17 January 2012 в 18:55
  • 2
    Вы не можете display: none элемент с переходами – Green 28 May 2016 в 11:25
  • 3
    @Green нет, вы не можете. В этом причина анимированного примера. – Roko C. Buljan 28 May 2016 в 13:02

Вот как я скрываю и показываю контент с помощью класса. изменение класса на ничего изменит отображение на блок, изменение класса на «a» покажет отображение как none.

<!DOCTYPE html>
<html>
<head>
<style>
body  {
  background-color:#777777;
  }
block1{
  display:block; background-color:black; color:white; padding:20px; margin:20px;
  }
block1.a{
  display:none; background-color:black; color:white; padding:20px; margin:20px;
  }
</style>
</head>
<body>
<button onclick="document.getElementById('ID').setAttribute('class', '');">Open</button>
<button onclick="document.getElementById('ID').setAttribute('class', 'a');">Close</button>
<block1 id="ID" class="a">
<p>Testing</p>
</block1>
</body>
</html>
0
ответ дан Shawn Baldwin 23 August 2018 в 01:23
поделиться
20
ответ дан Roko C. Buljan 5 November 2018 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: